0

次の2つのlinq式を1に変更する方法はありますか?

var criticalCategories =
    _commonDao.GetAllByExpression<CategoryItem>(
        x => x.Category.Uid == gridAnswer.ActivityCategory.Uid && x.Critical);

if(criticalCategories.Any())
{
    criticalWeight = criticalCategories.Min(x => x.Weight);
}
4

1 に答える 1

2

ソースシーケンスに要素が含まれていない場合に特定の値を生成するEnumerable.DefaultIfEmptyことを確認するために使用できます。Min

次に、次のように記述できます。

var criticalCategories = _commonDao.GetAllByExpression<CategoryItem>(...);

criticalWeight = criticalCategories
                     .Select(x => x.Weight)
                     .DefaultIfEmpty(42)
                     .Min();

上記は自明に連鎖可能ですが、実際にここでは連鎖しませんでしたcriticalCategories。明確にしていただけますか?

于 2012-10-30T14:44:26.230 に答える