我有一个Asset
实体列表,每个实体Asset
都有一个Field
具有两个属性的实体列表,每个属性看起来像这样
| Index | Value |
| 0 | "hello" |
| 1 | "blah" |
| 2 | null |
在一个循环中我得到变量
i = 2
和i = 3
我有一个 linq 查询来尝试获取以下内容:Assets
有一个对应的Field
位置是,或者没有一个。Value
i
null
Field
Index
i
例如,如果i
是 2,它将返回具有上表的资产,因为它有一个Field
where 2 对应于null
。
而且,如果是 3,它也应该返回上面的,i
因为没有3。Field
Index
此代码有效:
var assets = (from a in assets where
a.Fields.Any(x => x.Index == i && x.Value == null) select a)
.Union(from a in assets where
a.Fields.All(x => x.Index != i) select a)
.ToList();
这不是很好,我想知道有没有办法在一个声明中做到这一点?