System.Collection.Generic.IEnummerable ==字符串

问题描述:

我从DB获取用户,并且用户拥有一个帐户列表。 而且我需要检查一个帐户的名称是否等于一个字符串。 所以我选择了所有帐户,然后名称:System.Collection.Generic.IEnummerable <string> ==字符串

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>

类型

如何检查是否相等?

+0

他说'IEnumerable的'但不是在代码分隔符,格式化程序就像原始HTML一样剥离它。 – 2013-03-06 14:52:51

+0

@ 280Z28我明白了,我有多愚蠢:p – Nolonar 2013-03-06 14:53:46

+0

您选择的Name属性的类型是什么? – 2013-03-06 15:01:16

您需要使用SelectMany扁平化Account第一,然后用Any检查:

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

或者使用双Any检查:

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

我不知道为什么,但第一个不起作用。但第二个为我工作。非常感谢。 – spitzbuaamy 2013-03-06 15:44:19