我有一個列表:var strings = new List<string>();
如何在C#列表中查找第一次出現,而無需通過LINQ查看整個列表?
我的列表包含5個字符串。
string.Add("Paul");
string.Add("Darren");
string.Add("Joe");
string.Add("Jane");
string.Add("Sally");
我想迭代列表,只要找到以「J」開頭的字符串,我不需要繼續處理列表。
LINQ可以嗎?
我有一個列表:var strings = new List<string>();
如何在C#列表中查找第一次出現,而無需通過LINQ查看整個列表?
我的列表包含5個字符串。
string.Add("Paul");
string.Add("Darren");
string.Add("Joe");
string.Add("Jane");
string.Add("Sally");
我想迭代列表,只要找到以「J」開頭的字符串,我不需要繼續處理列表。
LINQ可以嗎?
bool hasJName = strings.Any(x => x.StartsWith("J"));
這將檢查是否存在以J開頭的任何名稱。
string jName = strings.FirstOrDefault(x => x.StartsWith("J"));
這將返回如果沒有發現開始的J名稱與J.開始的第一個名字,它返回null
。
使用First
LINQ方法(在System.Linq
):
strings.First(e => e.StartsWith("J"));
或者FirstOrDefault
如果你不知道,在你的列表中的任何元素將滿足條件:
strings.FirstOrDefault(e => e.StartsWith("J"));
然後,返回如果沒有找到元素,則返回null
。
您可以使用FirstOrDefault
也:
var firstMatch = strings.FirstOrDefault(s => s.StartsWith("J"));
if(firstMatch != null)
{
Console.WriteLine(firstMatch);
}
有什麼你試過了嗎?您是否瀏覽了LINQ方法列表,看看是否有人能夠實現這一目標?直接回答你的問題是的,這是可能的。 – Servy