|
|
連載:[完全版]究極のC#プログラミング
Chapter4 Findメソッド
川俣 晶
2009/09/14 |
|
|
4.6 そして、LINQへ続く
Find系メソッドを使った処理は、「1つの値の集まり」に対する処理を実現するが、「複数の値の集まり」に対する処理までは実現してくれない。そのため、たとえば複数の配列やコレクションをまたがった処理は記述しにくい。だが、それは第15章以降で解説するLINQがフォローしてくれる。
お楽しみはこれからである。
【Exercise】練習問題
次のプログラムには致命的な誤りが1つ含まれる。それはどれだろうか?
using System;
class Program
{
static void Main(string[] args)
{
int[] array = { 1, 2, 3 };
int sum = 0;
Array.ForEach(array, (i) =>
{
sum += i;
if( sum > 2 ) break;
});
Console.WriteLine(sum);
}
}
|
|
- ラムダ式にreturn文がない
- ラムダ式にbreak文が含まれる
- ラムダ式内でスコープ外の変数arrayやsumを参照している
- Array.ForEach<int>とintを明示する必要があるのに、していない
- sumの値はラムダ式が入るごとに初期化されるので、値が積算されない
◎解答:「 2 」(この行をマウスで選択してください)
Insider.NET 記事ランキング
本日
月間