无论如何将以下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);
}
答案 0 :(得分:2)
如果您的源序列不包含任何元素,您可以使用Enumerable.DefaultIfEmpty
确保Min
将生成特定值。
然后你可以写:
var criticalCategories = _commonDao.GetAllByExpression<CategoryItem>(...);
criticalWeight = criticalCategories
.Select(x => x.Weight)
.DefaultIfEmpty(42)
.Min();
以上是可以轻松连接的,但我实际上并没有在这里链接它,因为我不太确定以后应该如何使用criticalCategories
(如果有的话)。你能澄清一下吗?