0

DB からユーザーを取得し、ユーザーにはアカウントのリストがあります。そして、1 つのアカウントの名前が文字列と等しいかどうかを確認する必要があります。そのため、すべてのアカウントを選択してから名前を選択しました。

var accounts = user.Select(u=> u.Accounts.Select(a => a.Name)).ToList();

そして、次々と名前をチェックします。

for (int i = 0; i <= accounts.Count(); i++)
{
     if (accounts[i] == mandant)
         return true;
}

しかし=の型とmandant=string
の型accounts[i]System.Collections.Generic.IEnummerable<string>

それが等しいかどうかを確認する方法は?

4

1 に答える 1

5

Account最初に を使用して平坦化しSelectMany、次に を使用Anyして確認する必要があります。

if (users.SelectMany(u => u.Accounts).Any(a => a.Name == mandant))
{
}

または doubleAnyを使用して確認します。

if (users.Any(u => u.Accounts.Any(a => a.Name == mandant)))
{
}
于 2013-03-06T14:51:50.490 に答える