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