Получить список свойств из списка объектов


в настоящее время я использую 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 петли?

3 55
c#

3 ответа:

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

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

вы можете использовать LINQ:

List<X> Z = GetXlist();

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

return r;

или просто

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

узнайте больше о LINQ. Это довольно полезное.

свойства списка = objectList.Выберите(о => о.StringProperty).ToList ();

вы также можете сделать с помощью частного метода перегрузки и использовать его в запросе LINQ.

спасибо, Аншуман Моханти