以下のコードについての短い質問です。 常に0が表示されるのはなぜですか?代理人のLinqクエリで変数が更新されない
List<string> strList = new List<string>() { "Yes", "No", "Yes", "No", "Yes", "Yes"};
int hitCount = 0;
strList.Select(i =>
{
if(i.Equals("Yes"))
{
hitCount++;
}
return i;
});
Console.WriteLine(hitCount); // always returns 0.
Console.Read();
を使用しますが、それを実行することはできません。 – PetSerAl
実行が遅れているため、選択後にToList()を作成してヒット数を増やす必要があります。 – Icepickle
['.Count'](https://msdn.microsoft.com/en-us/library/bb535181 = vs.100).aspx)は、述語に一致する要素を数える良い方法です。実行の遅延や余分なリストを作成することはありません。 – kevingessner