4

私の C# コードには、 type のリストがありCustomClassます。このクラスにはブール プロパティが含まれますtrueOrFalse

私は持っていList<CustomClass>ます。trueOrFalseの値を持つリスト内のオブジェクトの数を保持するこのリストを使用して整数を作成したいと思いますTrue

これを行う最善の方法は何ですか? すべてのオブジェクトを反復処理するのではなく、Linq を使用してこれを達成する賢い方法があると思いますか?

どうもありがとう。

4

5 に答える 5

13

使用できますEnumerable.Count

int numTrue = list.Count(cc => cc.trueOrFalse);

追加することを忘れないでくださいusing system.Linq;

このメソッドを使用して、シーケンスに要素が含まれているかどうかを確認しないでください( list.Count(cc => cc.trueOrFalse) != 0)。したがって、次を使用する必要がありますEnumerable.Any

bool hasTrue = list.Any(cc => cc.trueOrFalse);

違いは、Countシーケンス全体を列挙するのに対しAny、テスト述語を通過する 1 つの要素が見つかるとすぐに true を返すことです。

于 2012-10-23T13:41:40.183 に答える
4

LINQ を使用すると、実に簡単に実行できます。

int amountTrue = list.Where(c => c.trueOrFalse).Count();

または、カウント内の Where を使用して短くします。

int amountTrue = list.Count(c => c.trueOrFalse);

Tim Schmelterが述べたように:using System.Linq;

于 2012-10-23T13:41:04.743 に答える
2
 list.Count(a => a.TrueOrFalse);

そして、私はあなたの財産を最初に大文字にする自由を取りました.

于 2012-10-23T13:42:00.390 に答える
1

それは LINQ では簡単です。

list.Count(x => x.trueOrFalse);

Countリストで拡張メソッドを呼び出して、条件を渡すだけです。あなたの場合、条件は単にブール値のプロパティです。

于 2012-10-23T13:41:46.287 に答える
0
var count = listOfCustomClass.Where(a => a.trueOrFalse).Count();
于 2012-10-23T13:42:38.457 に答える