4

いくつかの条件に基づいて分割する必要があるデータがあります。

var trues  = from item in items where  MyCondition(item, blah) select item;
var falses = from item in items where !MyCondition(item, blah) select item;

単一のクエリでこれを行い、両方の結果を取得して、上記のように自分自身を繰り返す必要がないようにする (そしてデータを 2 回反復する必要がない) よりクリーンな方法はありますか?

4

1 に答える 1

4

データを 2 回反復処理したくない場合は、真の値と偽の値を含む LINQ クエリを作成し、それらが属するグループを示すインジケーターを使用する必要があります。

を使用してこれを行うことができますToLookup

var combined = items.ToLookup(x => MyCondition(x, blah));
var trues = combined[true];
var falses = combined[false];
于 2013-06-24T08:18:24.480 に答える