101

現在、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ループを書く必要がないように、これを短縮する方法はありますか?

4

3 に答える 3

204

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

List<string> properties = objectList.Select(o => o.StringProperty).ToList();
于 2012-12-08T20:15:49.353 に答える
15

LINQ を使用できます。

List<X> Z = GetXlist();

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

return r;

あるいは単に、

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

LINQの詳細をご覧ください。とても便利です。

于 2012-12-08T20:17:23.190 に答える