我有以下代码:
<span>@Model.LicenseHolder.LegalPerson.ContactDetails.Select(x => x.Name == "Fish")</span>
当我运行时,我收到错误:
运营商&#39; ==&#39;不能应用于操作数&#39;方法组&#39;或&#39;字符串&#39;
我不明白为什么我会这样做。
在这里您可以看到ContactDetails的图片: &#39;
我想访问ContactDataType属性并比较Is Inside ContactDataType的Name-property,但我不知道它是怎么做的。所以基本上,我想要这个:@Model.LicenseHolder.LegalPerson.ContactDetails.ContactDataType.Select(x => x.Name == "PrimaryPhone")
答案 0 :(得分:7)
您需要将其应用于Where
而不是Select
功能:
<span>@Model.LicenseHolder.LegalPerson.ContactDetails.Where(x => x.Name == "Fish").FirstOrDefault()</span>
甚至更好:
<span>@Model.LicenseHolder.LegalPerson.ContactDetails.FirstOrDefault(x => x.Name == "Fish")</span>
答案 1 :(得分:2)
问题是,您尝试访问可能是方法而非属性的Name
成员。
在屏幕截图中,我们可以看到所有可用的属性:ContactDataType
,DebuggerDisplay
,Detail
,Id
和PersonId
。没有Name
。如果是属性,则必须将()
添加到Name
才能执行:
@Model.LicenseHolder.LegalPerson.ContactDetails.Select(x => x.Name() == "Fish")
这将返回IEnumerable<Boolean>
,但您可能还需要其他内容
也许这个?
@Model.LicenseHolder.LegalPerson.ContactDetails
.FirstOrDefault(x => x.Name() == "Fish")
.ContactDataType
这将返回ContactDetail
ContactDataType
Name()
"Fish"
等于glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, m_width, m_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0)
。
答案 2 :(得分:0)
Select Api保留用于选择属性,在您的情况下,您希望按属性的值进行过滤,因此请使用Where:
<span>@Model.LicenseHolder.LegalPerson.ContactDetails.Where(x => x.Name == "Fish").FirstOrDefault().Select(x => x.Name)</span>