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メソッドの使用(in System.Linq):

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

またはFirstOrDefault、リスト内のいずれかの要素が条件を満たすかどうかわからない場合:

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

次に、null要素が見つからなかった場合に戻ります。

于 2013-02-01T21:43:35.683 に答える