【发布时间】:2014-12-16 19:45:34
【问题描述】:
我有以下 linq 语句:
List<Type> allTypes = group.GetTypes().Union(group2.GetTypes()).ToList();
当 group2 为 null 时可能会抛出 NullReferenceException
解决此问题的一种方法是在之前执行空检查,例如:
if (group2 != null)
{
List<Type> allTypes = group.GetTypes().Union(group2.GetTypes()).ToList();
}
else
{
List<Type> allTypes = group.GetTypes();
}
但问题是我对不同类型有许多类似的分配,并且不想以这种方式为它们中的每一个执行 if 语句,但我宁愿将 null 检查放在一行中,例如:
List<Type> allTypes = group.GetTypes().Union((if group2 != null)group2.GetTypes()).ToList();
但不确定如何使用 linq。
【问题讨论】:
-
正是这些问题让我对即将到来的
?.运营商充满期待。 -
您可能需要考虑更改您的设计,以便
group2永远不会为空。
标签: c# .net linq ienumerable