我有下面的語句,它總是返回null:爲什麼Null無效的LINQ投影?
var addins = allocations.SelectMany(
set => set.locations.Any(q => q.IsMatch(level, count))
? (List<string>)set.addins : null
);
我改變了它略顯不足,現在它工作正常:
var addins = allocations.SelectMany(
set => set.locations.Any(q => q.IsMatch(level, count))
? set.addins : new List<string>()
);
我的主要問題:不爲空,爲什麼可以作爲在LINQ的這個上下文中來自三元運算符的返回類型?
第二個問題:是否有一種更聰明的方式來制定上述查詢(特別是如果它消除了「新List()」)?
優秀的答案和見解。順便說一句,「set.addins」在你的其他例子中不是必須的,因爲三元運算符沒有涉及。 – 2010-09-22 03:27:23