将2个linq表达式转换为

将2个linq表达式转换为,linq,Linq,是否仍要将以下2个linq表达式更改为1 var criticalCategories = _commonDao.GetAllByExpression<CategoryItem>( x => x.Category.Uid == gridAnswer.ActivityCategory.Uid && x.Critical); if(criticalCategories.Any()) { criticalWeight = critic

是否仍要将以下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);
}
var临界分类=
_commonDao.GetAllByExpression(
x=>x.Category.Uid==gridAnswer.ActivityCategory.Uid&&x.Critical);
if(criticalCategories.Any())
{
临界重量=临界类别.Min(x=>x.Weight);
}
如果源序列不包含元素,可以使用确保
Min
将生成特定值

然后你可以写:

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

criticalWeight = criticalCategories
                     .Select(x => x.Weight)
                     .DefaultIfEmpty(42)
                     .Min();
var criticalCategories=_commonDao.GetAllByExpression(…);
临界重量=临界类别
.选择(x=>x.Weight)
.DefaultIfEmpty(42)
.Min();

上面的内容是可以链接的,但实际上我没有在这里链接它,因为我不太确定以后应该如何使用
criticalCategories
(如果有的话)。您能澄清一下吗?

您是否希望合并
关键类别。任何
关键类别。Min
?当
criticalCategories
为空时,
criticalWeight
的值应该是多少?