[英]does c# null-conditional operator works with linq methods
我正在嘗試使用貓王運算符來實現這樣的目標
List<string> list = new List<string> { "str1", "str2", "str3"};
string searchkey = "str4"; // this does not exist in the list so will use elvis operator before picking the first from the resulting sequence.
var result = list.where(s=>(s.Contains(searchkey)))?.First();
我希望結果為null,但代碼實際上會引發異常。
問題是
list.Where(s=>(s.Contains(searchkey)))
不返回null
; 它返回一個空序列,這不一樣。
如果您希望在對象序列為null
時得到null
,請使用FirstOrDefault
:
var result = list.FirstOrDefault(s=>(s.Contains(searchkey)));
注意: C#的“貓王運算符”版本為||
,不是?.
。 您代碼中的運算符稱為空條件運算符 。
因為Where
運算符返回要枚舉的任何內容,並且First()
無法求值。 您可以使用FirstOrDefault()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.