从列表中获取属性列表

目前我使用foreach循环来返回object属性的列表。

  class X { List<X> Z = GetXlist(); List<String> r = new List<String>(); foreach (var z in Z) { r.Add(zA); } return r; } 

有没有办法可以缩短这个,所以我不必编写foreach循环?

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

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

你可以使用LINQ:

 List<X> Z = GetXlist(); List<String> r = Z.Select(z => zA).ToList(); return r; 

要不就,

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

了解更多关于LINQ的信息 。 这非常有用。