前提・実現したいこと
今まで、Linqのラムダ式のイメージがよくわかってなかったのですが、
foreachに書き換えることができるならイメージが掴めると思いました。
この書き換えが合っているかどうかご教示いただけませんか?
該当のソースコード
C#
1 2 public partial class Form1 : Form 3 { 4 List<int> list = new List<int> { 1, 2, 3, 4, 5}; 5 6 private void Form1_Load(object sender, EventArgs e) 7 { 8 int i = list.FirstOrDefault(item => item % 2 == 0); 9 Console.WriteLine(i); //2 10 11 //Linqは下記のようなforeachのイメージ? 12 13 foreach (int item in list) 14 { 15 if(item % 2 == 0) 16 { 17 //FirstOrDefaultとかWhereとSumの組み合わせとか 18 //Linqメソッドにより、 19 //この中の処理は変わる。 20 } 21 } 22 }
質問。
・質問1
Linqのラムダ式の(item => item % 2 == 0)の=>の左側の引数itemは、
foreach文で言う所の、foreach (int item in list)のitemと同じと考えてよいですか?
つまり、コレクションの要素を指し示す変数名と考えてよいですか?
・質問2
(item => item % 2 == 0)は、(引数 => どのような引数(コレクションの要素)を抽出するかの条件)というイメージで合っていますか?
つまり、=>の右側の条件式は、foreach文で言う所のif(item % 2 == 0)のようなif文の中の条件式とイメージしてよいですか?
・質問3
LinqのFirstOrDefaultとかSumとかは、foreach文で言う所のif文の中の処理に該当するとイメージしてよいですか?
ご教示宜しくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/09/08 06:44 編集
2018/09/08 06:43
退会済みユーザー
2018/09/08 07:57