我試圖執行下面的代碼,它工作正常,如果myObject是!= null,但如果myObject爲null則拋出「值不能爲空」錯誤。理想情況下,如果myObject的爲null,則我想只是有HashSet的有0Hashset「值不能爲空」錯誤
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});
任何人都有更好的方法來做到這一點?
你以爲我犧牲可讀性緊湊?我看着它,這是有道理的,但其他人會看到這行代碼,並發現它太過複雜? – Jay 2012-07-24 13:31:43