【发布时间】:2019-11-19 03:41:18
【问题描述】:
我有一个以下方式的 Linq 查询,如果某个值在 from 中变为 null,则避免选择,如果它不为 null 或有值,则只进行选择,在下面的查询中,只有在 vv 时才会发生选择不为空,并且正在选择的项目不应为空
var Violations = from vv in n.Violations
select new
{
ViolationNumber = vv.ViolationNumber,
ViolationId = vv.ViolationId,
inspectionItemNum = (inspectionItems != null && inspectionItems.Count() > 0)
? (from i in inspectionItems
where i.Violations.Any(v => v.ViolationId == vv.ViolationId)
select i.InspectionItemNumber)
: null
}
所以在上面的Linq查询中,如果vv变为null,如果vv变为null,它应该只返回null,我不想执行select new,因为它会抛出异常,我该如何处理C#中的情况,有什么帮助吗? - 非常感谢。
【问题讨论】:
-
这不是看inspectionItems 是什么,一个查询,一个列表,....考虑使用Join 而不是这个“Any”。你的 ViolationId 不是唯一的吗?您是否希望每个 Table 有多个 ID? “查找”可能比“任何”更合适。
-
您能否澄清一下:如果 Violation 不在inspectionItems Violations 集合中(以及在n.Violations 中),您是否希望新集合中有一个空条目?