2012-12-08 21 views
49

現在、私はforeachループを使用してobjectプロパティのリストを返します。オブジェクト一覧からプロパティリストを取得

class X 
{ 
    List<X> Z = GetXlist(); 
    List<String> r = new List<String>(); 

    foreach (var z in Z) 
    { 
     r.Add(z.A); 
    } 

    return r; 
} 

私はforeachループを記述する必要がないように、私はこれを短縮することができます方法はありますか?

+0

あなたはforループを書いていません。あなたはhttp://programmers.stackexchange.com/questions/178218/for-vs-foreach-vs-linqに気づくべき違いがあります –

答えて

83

LINQが答えです。これを使用して、オブジェクトコレクションから別のコレクション(この場合はオブジェクトプロパティ値のコレクション)に「プロジェクト」することができます。

List<string> properties = objectList.Select(o => o.StringProperty).ToList(); 
+0

簡単な修正!ありがとう! –

5

あなたは、LINQを使用することができます。

List<X> Z = GetXlist(); 

List<String> r = Z.Select(z => z.A).ToList(); 

return r; 

それとも、

return GetXlist().Select(z => z.A).ToList(); 

をよりおよそLINQして下さい。 かなりです。

関連する問題