LoginSignup
1
2

More than 3 years have passed since last update.

C#学習時のメモ (随時修正)

Last updated at Posted at 2020-09-11

標準入力

//ここでは入力値をそのまま変数に代入しているので=の右側だけでOK
//文字列
var date = Console.ReadLine();
//int型
var num = int.Parse(Console.ReadLine()); //int.Parseでint型に変換している

出力

//改行なし
Console.Write(/*出力値*/);
//改行あり
Console.WriteLine(/*出力値*/);

Console.ReadKey

自動でプログラムが閉じるのを任意の場所で入力待ちの状態にできる

Console.WriteLine("HELLO");
//通常ならここでHELLOを出力してプログラムが閉じるが以下の記述があると入力待ちの状態になる
Console.ReadKey();

if文

if (/*条件式*/) {
  /*処理*/
} else if (/*条件式*/) {
  /*処理*/
} else {
  /*処理*/
}

while文


//以下はじめに無限ループにならないようカウンタ変数の宣言
var i = 0;
while (/*カウンタ変数の条件式*/) {
  /*ループ処理*/
  //以下カウンタ変数の更新
  i+=1
}

for文

//forの後に(カウンタ変数の宣言; 条件式; カウンタ変数を更新)
for (var i = 0; i<10; i+=1) {
  /*繰り返し処理*/
}

配列

//配列の宣言
int ary[5]; //要素の型 配列名[要素の数]
//要素を指定して配列を作成
string[] words = {"C#","Go","Ruby"};
int[] nums = {2,4,6,8};

//はじめに配列に入れる要素数がわからない時はListクラスを使用
using System.Collections.Generic;
var ary = new List<string>();
ary.Add("C#"); //Listで作成した配列に要素を追加
ary.Insert(0,"Go"); //Listで作成した配列に挿入 一つ目の引数にindexを指定

//多次元配列の扱い
string[] ary1 = {"山田", "佐藤", "小林"};
string[] ary2 = {"遠藤", "松田", "若林"};
string[][] names = {ary1,ary2}; //宣言の際[]を一つ増やして配列を配列に入れる
names[1][1] //松田

Splitメソッド

文字列の分割

var name = "山田 太郎";
string[] names = name.Split(' '); //この場合はスペースで分割しnames配列に入れている
//分割の際の引数は削除される

string.Joinメソッド

配列の要素を連結する

//配列の中身を一度に出力できる
string[] names = {"山田","山本"};
Console.WriteLine(string.Join(",",names)); //一つ目の引数に要素同士の間に区切り文字を指定
//山田,山本と出力

foreach

配列の中身や文字列を一つずつ処理

int[] nums = {1,2,3,4,5};
//配列の中の値をそれぞれ2倍にして出力
foreach (int num in nums) { //foreach(foreachメソッド内で使う変数を型 その名前 in 処理する対象の配列や文字列)
  Console.Write(num*2);
}
//246810
var word = "あいうえお";
foreach (char s in word) {
  Console.WriteLine(s);
}
//一文字はstring型ではなくchar型になる。
//それぞれ改行されてあいうえおが出力

Lengthメソッド

配列や文字列の長さを取得

var word = "hello"
var snum = "1234567"
var num = 1234567
string[] ary = {"A","B","C"}
word.Length // 5
snum.Length // 7
num.Length // 変数numの値が文字列では無いのでエラー
ary.Length // 3

Substringメソッド

文字列から指定の文字列を取得

var word = "ABCDEFGH";
Console.WriteLine(word.Substring(3,2)); //一つ目の引数に取得開始位置のindex 二つ目に取得する文字数
// DEと出力

IndexOfメソッド

文字列や配列から文字を探して位置やindexを返す

var word = "あいうえおあいうえお";
Console.WriteLine(word.IndexOf("え")); //引数に探したい文字を入れる
// 一つ目の”え”のindexである3が出力される
Console.WriteLine(word.IndexOf("か"));
// 文字列に含まれない場合は0を出力

string[] names = {"内山","神谷","尾崎"};
Console.WriteLine(Array.IndexOf(names,"神谷")); //配列はArray.IndexOf(配列名,探したい要素)と記述する
// 1が出力

Selectメソッド

Linqを用いてforeachの様に要素それぞれに処理を行う、多言語のmapに近い

using System.Linq; //これでLinqが使える
int[] nums = {1,2,3,4,5};
var ary = nums.Select(x => x*2); //numsの要素を左辺でxに代入し右辺で処理を行いaryに格納する
Console.WriteLine(string.Join(",",ary)); //aryを連結して出力
// numsの要素それぞれを2倍にした2,4,6,8,10が出力される

Whereメソッド

Linqを用いてforeachの様に要素それぞれに処理を行う、条件に合うものを返す

using System.Linq; //これでLinqが使える
int[] nums = {1,2,3,4,5};
var ary = nums.Where(x => x>2); //numsの要素を左辺でxに代入し右辺で条件に合うか照合し合うものだけaryに格納する
Console.WriteLine(string.Join(",",ary)); //aryを連結して出力
// numsの要素の中で2より大きい値の3,4,5が出力される
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2