2016-08-29 32 views
4

に適用することができない私は、次のコードを持っている:演算子「==」は、オペランド「メソッドグループ」または「文字列」

<span>@Model.LicenseHolder.LegalPerson.ContactDetails.Select(x => x.Name == "Fish")</span> 

を私はこれを実行すると、私はエラーを取得する:

Operator '==' cannot be applied to operands 'method group' or 'string'

私はなぜこれを得るのか分かりません。

ここにあなたがするcontactDetailsの絵を見ることができます: 「enter image description here

私はContactDataTypeプロパティにアクセスし、内部ContactDataTypeされている名前、プロパティを比較したいが、私はそれを行う方法がわかりません。

<span>@Model.LicenseHolder.LegalPerson.ContactDetails.Where(x => x.Name == "Fish").FirstOrDefault()</span> 

あるいはさらに良い:@Model.LicenseHolder.LegalPerson.ContactDetails.ContactDataType.Select(x => x.Name == "PrimaryPhone")

+0

'プロパティは、典型的なC#ネストされたオブジェクトのプロパティのドット表記法を使用します。 'x.ContractDataType.Name'です。 –

+0

@IvanStoev:いいえ、これはうまくいきません。 – Bryan

+0

私はそれが問題全体を解決するとは言わなかった - 答えに言及されている他のものがあるので、あなたは '選択 'の代わりに'場所 'を使うべきです。上記は、 'Where'の中で必要なプロパティにアクセスする方法です。 –

答えて

7

あなたはあなたのWhereないSelect関数にそれを適用する必要がありますので、基本的に、私はこれ欲しい

<span>@Model.LicenseHolder.LegalPerson.ContactDetails.FirstOrDefault(x => x.Name == "Fish")</span> 
+2

にアクセスする方法はわかりません。 '@ Model.LicenseHolder.LegalPerson.ContactDetails.FirstOrDefault(x => x.Name ==" Fish ")' – ramiramilu

+0

本当のバディです。ありがとう! – Oluwafemi

+0

@Oluwafemi:いいえ、これは動作しません。私は同じエラーが発生します。 – Bryan

2

問題は、あなたがしようということであり、おそらくメソッドでありプロパティではないNameメンバーにアクセスしてください。
スクリーンショットには、利用可能なすべてのプロパティが表示されます:ContactDataType,DebuggerDisplayDetailIdPersonIdNameはありません。それはあなたがそれを実行するためにName()を追加しなければならないプロパティの場合:

@Model.LicenseHolder.LegalPerson.ContactDetails.Select(x => x.Name() == "Fish") 

これはIEnumerable<Boolean>を返しますが、おそらくあなたは、他の何かをしたいです。
これは多分ですか?

@Model.LicenseHolder.LegalPerson.ContactDetails 
     .FirstOrDefault(x => x.Name() == "Fish") 
     .ContactDataType 

これはName()"Fish"に等しい最初ContactDetailContactDataTypeを返します。

+0

これは機能しません。私は同じエラーが発生します。 – Bryan

+0

@ブライアンそれは変です。あなたは私たちに '名前'メンバーを見せてもらえますか?それは方法ですか?それは何を返すのですか?私はそれが正常に動作するよりも、文字列を返すと仮定しました。 – Koopakiller

0

選択APIは、プロパティの選択のために予約されている、あなたのケースでは、あなたは、プロパティの値でフィルタするので、使用したい場合は: `ContractDataTypeの` name`のプロパティにアクセスするためとして <span>@Model.LicenseHolder.LegalPerson.ContactDetails.Where(x => x.Name == "Fish").FirstOrDefault().Select(x => x.Name)</span>

+0

私は同じエラーを取得します。 – Bryan

関連する問題