Отримати список властивостей зі списку об’єктів


88

В даний час я використовую foreachцикл для повернення списку objectвластивостей.

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

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

     return r;
}

Чи є спосіб, як я можу це скоротити, щоб мені не довелося писати foreachцикл?


Ви не пишете цикл for. Існує різниця в тому, що вам слід знати про programmers.stackexchange.com/questions/178218/…
Даррен Янг

Відповіді:


166

LINQ - це відповідь. Ви можете використовувати його для "проектування" з вашої колекції об'єктів на іншу колекцію - у цьому випадку колекцію значень властивостей об'єкта.

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

12

Ви можете використовувати LINQ:

List<X> Z = GetXlist();

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

return r;

Або просто,

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

Дізнайтеся більше про LINQ . Це досить корисно.


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

Ви також можете зробити це приватним OverLoadingспособом і використовувати це в запиті LINQ.


4
Це не надає значення встановленій відповіді
Іван Калоянов
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.