2010-05-17 7 views
7

digamos que tenemos una clase simplepregunta LINQ simple: el uso de LINQ para obtener una matriz de propiedades

public class Foo 
{ 
    public string FooName; 
} 

Ahora queremos hacer un trabajo simple en él.

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

Si siquiera supiera a qué método llamar, probablemente podría encontrar el resto de las piezas.

+0

qué la respuesta a continuación ayudaron u? – Malcolm

Respuesta

16

Desea transformar una lista de su clase en una matriz de cadenas. El método ideal para esto es Select, que opera en cada elemento en el enumerable y crea un nuevo enumerable basado en el tipo que devuelve.

Debe poner una expresión lambda en el método de selección que devuelve el nombre, que simplemente será "para cada elemento, seleccione el nombre".

Luego debe convertir el resultado como una matriz.

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

O, usando la otra sintaxis:

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