Obtenha a lista de propriedades da Lista de objetos


88

Atualmente eu uso o foreachloop para retornar uma lista de objectpropriedades.

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

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

     return r;
}

Existe uma maneira de encurtar isso para não ter que escrever o foreachloop?


Você não está escrevendo um loop for. Há uma diferença que você deve estar ciente de programmers.stackexchange.com/questions/178218/…
Darren Young

Respostas:


166

LINQ é a resposta. Você pode usá-lo para "projetar" de sua coleção de objetos para outra coleção - neste caso, uma coleção de valores de propriedades de objetos.

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

12

Você pode usar LINQ:

List<X> Z = GetXlist();

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

return r;

Ou apenas,

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

Descubra mais sobre o LINQ . É muito útil.


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

Você também pode fazer por OverLoadingmétodo privado e usá-lo no LINQ Query.


4
Isso não fornece valor para a resposta estabelecida
Ivan Kaloyanov,
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.