2010-05-17 3 views
7

Powiedzmy mamy prostą klasęProste LINQ pytanie: przy użyciu LINQ uzyskać szereg właściwości

public class Foo 
{ 
    public string FooName; 
} 

Teraz chcemy zrobić kilka prostych prac nad nim.

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

Gdybym nawet wiedział, jaką metodę wybrać, prawdopodobnie mógłbym znaleźć resztę groszków.

+0

wziął się poniżej odpowiedź pomogła u? – Malcolm

Odpowiedz

16

Chcesz przekształcić listę swojej klasy w tablicę łańcuchów. Idealną metodą jest tutaj Select, który działa na każdym elemencie przeliczalnym i buduje nowy przelicznik na podstawie typu, który zwrócisz.

Należy wprowadzić wyrażenie lambda do metody select, która zwraca nazwę, która będzie po prostu "dla każdego elementu, wybierz nazwę".

Następnie należy rzucić wyjście jako tablicę.

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

Albo z innej składni:

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