Ottieni un elenco di proprietà da Elenco di oggetti


90

Attualmente utilizzo foreachloop per restituire un elenco di objectproprietà.

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

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

     return r;
}

C'è un modo per accorciarlo in modo da non dover scrivere il foreachciclo?


Non stai scrivendo un ciclo for. C'è una differenza che dovresti essere a conoscenza di programmers.stackexchange.com/questions/178218/…
Darren Young

Risposte:


173

LINQ è la risposta. Puoi usarlo per "proiettare" dalla tua raccolta di oggetti a un'altra raccolta, in questo caso una raccolta di valori di proprietà dell'oggetto.

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

13

Puoi usare LINQ:

List<X> Z = GetXlist();

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

return r;

O semplicemente,

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

Ulteriori informazioni su LINQ . È piuttosto utile.


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

Puoi anche farlo con OverLoadingmetodo privato e usarlo in LINQ Query.


4
Ciò non fornisce valore alla risposta stabilita
Ivan Kaloyanov
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.