2010-10-15 122 views
3

使用C#,我有一个Foo类型的List,它有一个字符串属性Bar。 我想使用Bar属性将此列表转换为字符串数组。List <T> to string []

有没有一种简单的(LINQ?)方式来做到这一点,而无需循环收集?

回答

12
List<Foo> l = GetMyList(); 
string[] myStrings = l.Select(i => i.Bar).ToArray(); 

请注意,就像所有的linq代码一样,这仍然会循环收集 - 您只是不要自己编写循环。

另外请注意,您应该避免调用.ToArray(),直到最后一刻。你确定IEnumerable在这里不够好吗?

+0

是的,我重写别人的类,它需要一个字符串[]。 – mattdwen 2010-10-15 00:45:53

4

试试这个:

string[] bars = myList.Select(x => x.Bar).ToArray();