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 回答