Pobierz listę właściwości z listy obiektów


88

Obecnie używam foreachpętli do zwracania listy objectwłaściwości.

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

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

     return r;
}

Czy jest sposób, żebym mógł to skrócić, aby nie musieć pisać foreachpętli?


Nie piszesz pętli for. Jest różnica, o której powinieneś wiedzieć programmers.stackexchange.com/questions/178218/ ...
Darren Young

Odpowiedzi:


166

LINQ jest odpowiedzią. Możesz go użyć do „projektu” z kolekcji obiektów do innej kolekcji - w tym przypadku do zbioru wartości właściwości obiektu.

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

12

Możesz użyć LINQ:

List<X> Z = GetXlist();

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

return r;

Lub tylko,

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

Dowiedz się więcej o LINQ . To jest całkiem przydatne.


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

Możesz również zrobić to OverLoadingmetodą prywatną i użyć tego w zapytaniu LINQ.


4
To nie daje wartości ustalonej odpowiedzi
Ivan Kaloyanov
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.