Obecnie używam foreach
pętli do zwracania listy object
wł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ć foreach
pętli?
Odpowiedzi:
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();
źródło
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.
źródło
List<string> properties = objectList.Select(o => o.StringProperty).ToList();
Możesz również zrobić to
OverLoading
metodą prywatną i użyć tego w zapytaniu LINQ.źródło