2010-05-17 37 views
7

假设我们有一个简单的类简单的LINQ问题:使用LINQ获得属性数组

public class Foo 
{ 
    public string FooName; 
} 

现在我们想要做的就可以了一些简单的工作。

public void SomeCallerMethod(List<Foo> listOfFoos) 
{ 
    string[] fooNames = listOfFoo. // What to do here? 
} 

如果我甚至不知道叫什么方法,我大概可以找到peices的其余部分。

+0

没了下文答案帮助ü? – Malcolm 2010-05-17 07:40:32

回答

16

您想要将类的列表转换为字符串数组。对此的理想方法是Select,它对枚举上的每个元素进行操作,并根据返回的类型构建一个新的枚举。

您需要将一个lambda表达式放入返回名称的select方法中,该方法将简单地“为每个元素选择名称”。

然后您需要将输出转换为数组。

string[] fooNames = listOfFoos.Select(foo => foo.FooName).ToArray(); 

或者使用其他语法:

string[] fooNames = (from foo in listOfFoos 
        select foo.FooName).ToArray();