読者です 読者をやめる 読者になる 読者になる

C#_配列やListの要素を取得

for 文や foreach 文を使わない。
LINQ の Select や Where を用いる。

 

Selectすべての要素に対して処理。

型 要素の取得用変数 = 変数.Select( 要素 => 要素に対する処理 ).ToArray();

↑ で配列(など)から一つずつデータを取り出して処理してくれている。

 

Where条件を付け、一致する要素を取得。

 型 要素の取得用変数 = 変数.Where(要素 => 条件).ToArray();

 

 ex )

int[ ] numbersA = new int[3];
numbersA[0] = 10;
numbersA[1] = 20;
numbersA[2] = 30;

 

//各要素に 100 を追加
//data の箇所はなんでもよい。( x でも fuga でも)
int[ ] add = numbersA.Select(data => data + 100).ToArray();

//コンソール(出力)に0:110 1:120 2:130 と表示される
Console.WriteLine("0:{0} 1:{1} 2:{2}", add[0], add[1], add[2]);

 

//20 以上の要素を抽出
int[ ] extract = numbersA.Where(x => x>=20).ToArray();

//0:20 1:30 と表示される。
Console.WriteLine("0:{0} 1:{1}", extract[0], extract[1]);

コンソールへの表示は、メニューの「表示」にある「出力」から。

 

こちらを参考
http://dobon.net/vb/dotnet/programing/arraymap.html
http://dobon.net/vb/dotnet/programing/arrayfilter.html

以上。
LINQ についていまいち分かっていないので後ほど。