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 回答
-1
List<string> properties = objectList.Select(o => o.StringProperty).ToList();

您也可以通过私有OverLoading方法执行并在 LINQ 查询中使用该方法。

于 2018-09-05T11:33:33.713 回答