2

物事を簡単にするために、私はこのクラスを持っています:

public class Contact
{
    public string Name { get; set; }
    public string[] Emails { get; set; }
}

連絡先のコレクションがあります=IEnumerable<Contact>

そのコレクション内で、メールアドレスに「xxx」というテキストが含まれているすべての連絡先を見つける必要があります(複数のメールがある場合があります)。

もちろん、そのようなものは機能しません。

var found = contacts.Where(c => c.Emails.Where(e => e.Contains("xxx")));

ラムダ式を使用してそのようなクエリを構築する方法を知りたいですか?

ありがとう。

4

2 に答える 2

4

内部式のAny代わりに使用します。Where

var found = contacts.Where(c => c.Emails.Any(e => e.Contains("xxx"))); 
于 2012-09-05T17:22:31.080 に答える
0

これを試して

var found = contacts.Where(c => c.Emails.Where(e => e.Contains("xxx")).Count() > 0);

これにより、指定された電子メール条件に従ってすべての連絡先が返されます。

幸運を !!

于 2012-09-05T17:22:29.300 に答える