【发布时间】:2023-02-17 03:27:53
【问题描述】:
我正在寻找使用动态 Linq 库进行 linq 查询,但我试图选择一个属性,该属性是一个 IEnumerable<T> 集合,在动态 linq 中调用 Sum() 函数时会抛出异常。我想知道我是否可以这样说:
queryable.Select("new (Sum(collection == null ? 0 : collection.Count) as Total)")
因为
Select("new (Sum(np(Contestants.Count, 0)) as Total)")
返回空引用异常
【问题讨论】:
-
我不太了解动态linq。在“正常”的 linq 中,你会在总和之前说
.DefaultIfEmpty(0)。也许这有帮助。 -
@Klamsi dynamic-linq.net/advanced-null-propagation它没有相同的语法
-
您的
Where接线员没有任何意义。用纯 C# 编写相同的代码,您会感到惊讶。 -
@SvyatoslavDanyliv 是的,我意识到我打算写 Select
-
Select中的字符串再次不正确。你想达到什么目的?使用动态 linq 对我来说是不好的品味。一切都可以通过表达式树生成。
标签: c# linq .net-core dynamic-linq