我有两个IEnumerable变量,两者都可以为null。我需要将它们合并到一个列表中。这是直接的方法。
var ienumerable1 = GetEnumerable1();
var ienumerable2 = GetEnumerable2();
if(ienumerable1 != null){
if(ienumerable2 != null){
return ienumerable1.Union(ienumerable2);
}
return ienumerable1;
}
else{
return ienumerable2;
}
在更少的代码行中是否有更优雅的方法来执行此操作?
答案 0 :(得分:16)
只检查null并指定Enumerable.Empty
如果为null。这可以使用null coalescing operator ??
var ienumerable1 = GetEnumerable1() ?? Enumerable.Empty<WhateverType>();
var ienumerable2 = GetEnumerable2() ?? Enumerable.Empty<WhateverType>();
return ienumerable1.Union(ienumerable2);
答案 1 :(得分:0)
var ienumerable1 = GetEnumerable1();
var ienumerable2 = GetEnumerable2();
return ienumerable1 != null
? (ienumerable2 != null ? ienumerable1.Union(ienumerable2) : ienumerable1)
: ienumerable2;