2016-08-13 5 views
2

私のエンティティのリストがあり、私は自分のエンティティからいくつかのプロパティを取得するために選択を使用しています。私のエンティティにはPrimaryContactのプロパティがあり、これにはLastNameというプロパティがあります。だから私はこのように使用する場合、それは罰金c#ラムダ式リストから選択

var b = items.Select(s => s[PropertyName]); //Property name is "PrimaryContact" it's fine. 

を働いているが、私は"PrimaryContact.LastName"これを使用する場合は

var x = items.Select(s => s[PropertyName]); //Property name is "PrimaryContact.LastName" it's not working 

PropertyNameはevrythingかもしれない動作していない: "PrimaryContact.LastName"、 "PrimaryContact.FirstName"、 " PrimaryContact.Address.City "

誰かが私に助けてくれますか?

+0

質問が更新されました –

+0

解決方法はありませんか? – Mostafiz

+0

これはPrimaryContact.LastName –

答えて

0

あなたがコレクションとしてすべての項目Lastnameをしたい場合は、すべての必要な場合

var x = items.Select(s => s["PrimaryContact"].LastName); 

、あなたは一つだけのアイテム LastNameをしたい場合は

var x = items.Select(s => s["PrimaryContact"]).FirstOrDefault().LastName; 

その後、

var x = items.Select(s => s["PrimaryContact"].LastName); 
+0

残念ながら、 'Select'は' IEnumerable 'を返すので、コンパイルできません。 't' .LastName' –

+0

あなたのコードも問題を形成しています – Mostafiz

+0

@GiladGreen agree – Sajeetharan

0

、これを試してみて、プロパティは、すべてのプロパティで最初に選択し、それを繰り返します。

ar x = items.Select(s => s["PrimaryContact"]); 

foreach(var p in x) 
{ 
    // P.FirstName 
    // p.LastName 
    // p.Address.City 
} 
+0

助けてくれてありがとうございますそれが最良の方法だと思っていない –

+0

なぜ私は使用できないvar x = items.Select(s => s ["PrimaryContact.LastName"]); –

+0

'PrimaryContact.LastName'は姓のコレクションではないようですが、それは単一のエンティティですが、' PrimaryContact'はコレクションなので、linqを使ってそれらを選択できますが、なぜ私のソリューションは最良の方法ではありませんか? – Mostafiz

0

Selectので戻っIEnumerableあなたがitems内のすべてのLastName秒をしたい場合:

var b = items.Select(s => s["PrimaryContact"].LastName); 

そうでなければあなたはSelect使用FirstOrDefault後にそれらのうちの一つだけしたい場合:

var b = items.Select(s => s["PrimaryContact"]).FirstOrDefault().LastName; 
+0

私の質問が更新されました –

関連する問題