2009-12-22 36 views
4

说我有一个Customer类的常用属性:CustomerIDName从对象列表<T>中获取属性值列表的“优雅”方式?

作为查询的结果,我得到Customer对象的泛型列表:List<Customer>

有一种优雅的方式来从这个通用列表中获取CustomerID或Name属性值的数组/列表? (即string [] customerIDs = ????)

我知道我可以做一个foreach并在循环中填充数组,但只是想知道是否有更优雅的方式通过LINQ扩展和/或lambda表达式去做这个。

谢谢。

回答

6

如果你使用LINQ,你可以做到以下几点:

string[] customerIDs = list.Select(x => x.ID).ToArray(); 
+0

有没有办法做一些类似的,没有LINQ?由于我们仍在使用C#2.0,因此目前暂时无法使用。 – 2012-02-01 16:28:39

+0

没有“优雅”的方式来做到这一点。您需要创建一个合适大小的新数组,并逐个将其填充到for循环中。 – FryGuy 2012-04-02 23:17:11

2
List customerList = GetCustomerList(); 

var customerIDs = 
    from c in customerList 
    select c.CustomerID; 

更多的样本here

相关问题