簡體   English   中英

C#空條件運算符是否可以與linq方法一起使用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM