10

条件が結果を返さない場合、返されたコレクションにデフォルト値を挿入する方法はwhere?

from i in data.collection
where i.Type == type
select i.Count
4

3 に答える 3

30

Enumerable.DefaultIfEmptyメソッドを使用してこれを行います。

例(IMHOの方が扱いにくいため、メソッド構文で):

data.collection.Where(i => i.Type == type)
               .DefaultIfEmpty(defaultObject)
               .Select(i => i.Count);
于 2012-11-27T12:23:33.813 に答える
9

DefaultIfEmpty()メソッドがあります。

メソッド構文では、次のように使用できます。

data.Collection
    .Where(i => i.Type == type)
    .DefaultIfEmpty(yourDefaultValue)
    .Select(i => i.Count);

フィルターがアイテムを返さない場合、Where1 アイテムの列挙可能な がプロジェクションyourDefaultValueの入力として使用されます。Select

于 2012-11-27T12:24:54.827 に答える
5

を探していDefaultIfEmptyます。

var itemCounts = from i in data.collection
                 where i.Type == type
                 select i.Count;

var itemCountsOrMinusOne = itemCounts.DefaultIfEmpty(-1);

1 つ目はアイテム数、またはIEnumerable要素を返さない を返します。

2 番目は、アイテムの数、またはIEnuemrable単に を返す を返します-1

于 2012-11-27T12:24:04.890 に答える