System.Collection.Generic.IEnummerable <string> == string

spi*_*amy 0 c#

我从数据库中获得用户,并且用户有一个帐户列表.我需要检查一个帐户的名称是否等于一个字符串.所以我选择了所有帐户,然后选择了名称:

var accounts = user.Select(u=> u.Accounts.Select(a => a.Name)).ToList();
Run Code Online (Sandbox Code Playgroud)

然后我在另一个之后检查一个名字:

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

但类型mandant= string
和类型accounts[i]=System.Collections.Generic.IEnummerable<string>

如何检查是否相等?

cuo*_*gle 5

你需要Account先使用flatten SelectMany,然后Any用来检查:

if (users.SelectMany(u => u.Accounts).Any(a => a.Name == mandant))
{
}
Run Code Online (Sandbox Code Playgroud)

或者使用double Any来检查:

if (users.Any(u => u.Accounts.Any(a => a.Name == mandant)))
{
}
Run Code Online (Sandbox Code Playgroud)