简单的linq问题:使用linq获取一系列属性

Joe*_*tti 11 c# linq-to-objects

可以说我们有一个简单的课程

public class Foo
{
    public string FooName;
}
Run Code Online (Sandbox Code Playgroud)

现在我们想做一些简单的工作.

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

如果我甚至知道要拨打什么方法,我可能会找到其他的方法.

cjk*_*cjk 21

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

您需要将一个lambda表达式放入返回名称的select方法中,该方法只是"为每个元素选择名称".

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

string[] fooNames = listOfFoos.Select(foo => foo.FooName).ToArray();
Run Code Online (Sandbox Code Playgroud)

或者,使用其他语法:

string[] fooNames = (from foo in listOfFoos
                     select foo.FooName).ToArray();
Run Code Online (Sandbox Code Playgroud)