【发布时间】:2012-07-22 07:52:39
【问题描述】:
我正在尝试执行以下代码,如果 myObject 为 != null 则它可以正常工作,但如果 myObject 为 null 则抛出“值不能为 null”错误。理想情况下,如果 myObject 为空,那么我希望 HashSet 有一个单一的值 0。
var ids = new HashSet<int>(myObject.Select(p => p.ID));
我尝试了几种不同的方法。我不确定为什么我认为这会起作用。
var ids = new HashSet<int>(myObject.Select(p => p.ID).Where(p => p != null));
这似乎应该可以工作。
var ids = new HashSet<int>(myObject.Select(p => (p == null) ? 0 : p.ID));
终于成功了,但似乎必须有更好的方法。
var ids = new HashSet<int>(myObject!= null ? myObject.Select(p => p.ID) : new int[] {0});
有人有更好的方法吗?
【问题讨论】: