从对象列表中获取属性列表

时间:2012-12-08 20:13:32

标签: c#

目前,我使用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循环?

3 个答案:

答案 0 :(得分:123)

LINQ 就是答案。您可以使用它从对象集合“投影”到另一个集合 - 在这种情况下是对象属性值的集合。

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

答案 1 :(得分:7)

您可以使用LINQ:

List<X> Z = GetXlist();

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

return r;

或者只是,

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

详细了解 LINQ 漂亮很有用。

答案 2 :(得分:0)

列表属性= objectList.Select(o => o.StringProperty).ToList();

您也可以使用私有重载方法来做,并在LINQ查询中使用它。

谢谢, 安斯曼·莫汉蒂(Anshuman Mohanty)