Простой linq вопрос: использование linq для получения массива свойств

Позволяет говорят, что у нас есть простой класс

public class Foo
{
    public string FooName;
}

Теперь мы хотим сделать некоторую простую работу над ним.

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

Если я даже знал, какой метод звонить, я мог, вероятно, найти остальной частью частей.

11
задан Joel Barsotti 17 May 2010 в 07:29
поделиться

1 ответ

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

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

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

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

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

string[] fooNames = (from foo in listOfFoos
                     select foo.FooName).ToArray();
21
ответ дан 3 December 2019 в 05:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: