2010-05-17 2 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

сделал ниже ответ помог U? – Malcolm

ответ

16

Вы хотите преобразовать список своего класса в массив строк. Идеальный метод для этого - Select, который работает с каждым элементом перечислимого и создает новый перечислимый, основанный на возвращаемом вами типе.

Вам нужно поместить выражение лямбда в метод select, который возвращает имя, которое будет просто «для каждого элемента, выберите имя».

Затем вам необходимо передать результат в виде массива.

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

Или, используя другой синтаксис:

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