如何在不使用LINQ检查整个列表的情况下查找c#list中的第一个匹配项?

如何在不使用LINQ检查整个列表的情况下查找c#list中的第一个匹配项?,c#,linq,C#,Linq,我有一个列表:var strings=newlist() 我的列表包含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"));

我有一个列表:
var strings=newlist()

我的列表包含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开头的名称,则使用LINQ方法(在
System.LINQ
中)返回
null

FirstOrDefault
如果您不确定列表中的任何元素是否满足以下条件:

strings.FirstOrDefault(e => e.StartsWith("J"));
然后,如果未找到元素,则返回
null

尝试:

strings.FirstOrDefault(s=>s.StartsWith("J"));
此外,如果您是LINQ的新手,我建议您通过

,您可以使用:


你试过什么?您是否浏览过LINQ方法列表,以查看是否有任何方法可以实现此目标?直接回答你的问题是的,这是可能的。
strings.FirstOrDefault(s=>s.StartsWith("J"));
var firstMatch = strings.FirstOrDefault(s => s.StartsWith("J"));
if(firstMatch != null)
{
    Console.WriteLine(firstMatch);
}