Liste der Eigenschaften aus Liste der Objekte abrufen


87

Derzeit verwende ich foreachloop, um eine Liste von objectEigenschaften zurückzugeben.

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

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

     return r;
}

Gibt es eine Möglichkeit, dies zu verkürzen, damit ich die foreachSchleife nicht schreiben muss ?


Sie schreiben keine for-Schleife. Es gibt einen Unterschied, den Sie programmers.stackexchange.com/questions/178218/…
Darren Young

Antworten:


165

LINQ ist die Antwort. Sie können es verwenden, um von Ihrer Objektsammlung in eine andere Sammlung zu "projizieren" - in diesem Fall eine Sammlung von Objekteigenschaftswerten.

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

12

Sie könnten LINQ verwenden:

List<X> Z = GetXlist();

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

return r;

Oder nur,

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

Erfahren Sie mehr über LINQ . Es ist ziemlich nützlich.


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

Sie können dies auch mit einer privaten OverLoadingMethode tun und diese in der LINQ-Abfrage verwenden.


4
Dies liefert keinen Wert für die etablierte Antwort
Ivan Kaloyanov
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.