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) + (height * height));


とすれば求められる





char型からint型への変換


intに対して - '0'するだけ


char charNum = '9';

int num = charNum - '0';


みたいな感じ





コメント