Obtener lista de propiedades de Lista de objetos


88

Actualmente utilizo foreachloop para devolver una lista de objectpropiedades.

 class X
 {
     List<X> Z = GetXlist();
     List<String> r = new List<String>();

     foreach (var z in Z)
     {
         r.Add(z.A);
     }

     return r;
}

¿Hay alguna forma de acortar esto para no tener que escribir el foreachciclo?


No estás escribiendo un bucle for. Hay una diferencia que debe tener en cuenta en programmers.stackexchange.com/questions/178218/…
Darren Young

Respuestas:


166

LINQ es la respuesta. Puede usarlo para "proyectar" desde su colección de objetos a otra colección, en este caso una colección de valores de propiedad de objeto.

List<string> properties = objectList.Select(o => o.StringProperty).ToList();

12

Podrías usar LINQ:

List<X> Z = GetXlist();

List<String> r = Z.Select(z => z.A).ToList();

return r;

O solo,

return GetXlist().Select(z => z.A).ToList();

Obtenga más información sobre LINQ . Es bastante útil.


0
List<string> properties = objectList.Select(o => o.StringProperty).ToList();

También puede hacerlo mediante un OverLoadingmétodo privado y usarlo en LINQ Query.


4
Esto no proporciona valor a la respuesta establecida
Ivan Kaloyanov
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.