3

我有一个清单:var strings = new List<string>();

我的列表包含 5 个字符串。

 string.Add("Paul");
 string.Add("Darren");
 string.Add("Joe");
 string.Add("Jane");
 string.Add("Sally");

我想遍历列表,一旦找到以“J”开头的字符串,我就不需要继续处理列表。

LINQ可以做到这一点吗?

4

4 回答 4

14

尝试:

strings.FirstOrDefault(s=>s.StartsWith("J"));

而且,如果您不熟悉 LINQ,我建议您在 C# 中阅读 101 个 LINQ 示例。

于 2013-02-01T21:43:45.773 回答
7

您可以使用FirstOrDefault

var firstMatch = strings.FirstOrDefault(s => s.StartsWith("J"));
if(firstMatch != null)
{
    Console.WriteLine(firstMatch);
}

演示

于 2013-02-01T21:43:54.410 回答
2
bool hasJName = strings.Any(x => x.StartsWith("J"));

这将检查是否存在任何以 J 开头的名称。

string jName = strings.FirstOrDefault(x => x.StartsWith("J"));

这将返回以 J 开头的名字。如果找不到以 J 开头的名称,则返回null

于 2013-02-01T21:43:27.707 回答
2

使用FirstLINQ 方法(在 中System.Linq):

strings.First(e => e.StartsWith("J"));

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

strings.FirstOrDefault(e => e.StartsWith("J"));

然后,null如果没有找到任何元素,则返回。

于 2013-02-01T21:43:35.683 回答