投稿

9月, 2021の投稿を表示しています

C#備忘録 stringをcharリストへ、Listのインデックス検索、平方根を計算するMath.Sqrt()、char型からint型へ

イメージ
 文字列からcharのリスト作成する foreachで1文字ずつcharとして取り出し、Add()メソッドを使って追加していく 例えばアルファベットのリストを作りたかったら string alphabets = "abcdefghijklmnopqrstuvwxyz"; var alphabetList = new List<char>(26); foreach(char alphabet in alphabets) {      alphabetList.Add(alphabet); } System.LinqのDump()メソッドを使って表示するとこんな感じ Listのインデックス(添字、最初の要素から0,1,2~)を取得する Listのインデックスを取得するにはFindIndex()メソッドを使う ライブラリは System.Collections.Generic 条件はラムダ式で書く、例えば FindIndex(n => n % 2 == 0) であれば List内の要素nが偶数の要素について、インデックスを返す なので、先程のアルファベットリストに対して for(int i = 0; i < 26; i++) { char charAlp = alphabetList[i]; int num = i + 1; int index = alphabetList.FindIndex(n => n == charAlp); Console.WriteLine($"{num}番目のアルファベット「{charAlp}」のインデックスは{index}"); } と記述すると、 アルファベットリストに対応したインデックスを表示する (アルファベットだとindex = i - 1で分かりづらいので、ランダムにするとこうなる) 平方根を計算するMath.Sqrt() 平方根(√)を計算するにはSystem.MathクラスのSqrt()メソッドを使う ※指定する数値と戻り値は double型 例えば直角三角形の斜辺を求める際は int width = 3; int height = 4; double hypotenuse = Math.Sqrt((width * width) + (hei

C#備忘録 stringあれこれ、Compare()、Remove()、Replace()

イメージ
 MSDNのstringクラス参照は ココ 名前空間は System 2つの文字列を比較して整数を返すString.Compare() 基本は String.Compare(stringの文字列A,stringの文字列B,大文字を無視するbool) の形 戻り値は整数で、文字列Aが文字列Bより並び替え順序が後だと1 前だと-1 同じだと0 つまり string textA = "bc"; string textB = "abc"; なら、textAはtextBより並び替え順序が後なので戻り値は1 戻り値は1 逆なら-1 同じなら0 String.Compare(strA,strB,bool) のboolに”大文字を無視するかどうか(無視するならtrue)”を入れれば大文字の比較を無視できる ので以下の文は同じ判定(戻り値0) 文字列から文字を削除するString.Remove() 基本は Remove(始まりの文字番int,何文字分消すかのint) の形 例えば string text = "ABC"; string CutText = text.Remove(0,1); とすると、 文字列textを、0番目から、1文字分、消す ので CutTextは"BC"になる ので、charを応用すると「最初の文字を文字列の最後につける」とか出来る string text = "ABC"; char firstChar = text[0]; string CutText = text.Remove(0,1); string newText = CutText + firstChar; 文字を置き換えるString.Replace() 基本は String.Replace(string文字列A,string文字列B) の形、stringはchar版もある 文字列Aを、文字列Bに置き換える 実際行うとこんな感じで”CD”を”YZ"に置き換えたりできる

C#備忘録 条件演算子?:、listの合計値Sum()、指定したラベルに飛ぶgoto

条件によって変わる条件演算子?: (変数 比較演算子 条件 ? 出力A : 出力B) と記述すると、 ?以前の文が条件を満たしている時出力A(true) 満たしていないと出力B(false) を出力する 例えば int num = 1; Console.Write(num == 1 ? "はい" : "いいえ"); と記述すると、numは1なので"はい"とコンソールに表示される Listの要素の合計値を計算する関数Sum() Listの合計値を計算するメソッドはSum() 例えば var list = new List<int>(5); for(int i = 0; i < 5; i++) {     list.Add(i); }    int sum = list.Sum(); Console.WriteLine(sum); とすると、1+2+3+4+5=10で”10”と表示される 指定したラベルに飛ぶgoto 飛ぶ部分の記述は goto ラベル名; 飛ぶ先の記述は ラベル名:; 記述のメモ gotoラベル名; ラベル名:; 特にラベル名後の:;の書き忘れに注意