我有一个列表:var strings = new List<string>();
我的列表包含 5 个字符串。
string.Add("Paul");
string.Add("Darren");
string.Add("Joe");
string.Add("Jane");
string.Add("Sally");
我想遍历列表,一旦找到以"J"开头的字符串,我就不需要继续处理列表。
这在 LINQ 中可能吗?
尝试:
strings.FirstOrDefault(s=>s.StartsWith("J"));
此外,如果您是 LINQ 新手,我建议您在 C# 中浏览 101 个 LINQ 示例。
您可以使用
FirstOrDefault
:
var firstMatch = strings.FirstOrDefault(s => s.StartsWith("J"));
if(firstMatch != null)
{
Console.WriteLine(firstMatch);
}
演示
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
。