5
我們從List<X>
開始。 X的每個對象都有一個Y類型的屬性x.你能否提出一種優雅的方式來構造一個由的每個元素Z組成的列表Z.x
? 我確信通過List<X>
的「手動」迭代是沒有必要的。感謝您的任何建議。如何從列表的每個元素中提取(在C#中)一個特定的屬性,並獲得這些屬性的新列表?
我們從List<X>
開始。 X的每個對象都有一個Y類型的屬性x.你能否提出一種優雅的方式來構造一個由的每個元素Z組成的列表Z.x
? 我確信通過List<X>
的「手動」迭代是沒有必要的。感謝您的任何建議。如何從列表的每個元素中提取(在C#中)一個特定的屬性,並獲得這些屬性的新列表?
如果這是List<T>
,則:
var newList = oldList.ConvertAll(item => item.x);
或LINQ:
var newList = oldList.Select(item => item.x).ToList();
注意,在C#2.0的第一個版本可能需要明確提及的一般類型:
List<Y> newList = oldList.ConvertAll<Y>(delegate (X item) { return item.x; });
(但實際上與第一條線100%相同)
還有一個靜態的Array.ConvertAll
,其行爲相似,但對於數組。