我在我的代碼方式來填補的List <>與元素
List<BookedReelsState> retVal = new List<BookedReelsState>(somesize);
比賽在後面的代碼,如果某些條件的作品,我需要填補相同的值這個整個列表。
當然,我可以通過foreach
循環和設置值,是否有更優雅的方式來做到這一點? 我只是在這裏學習新東西。
我在我的代碼方式來填補的List <>與元素
List<BookedReelsState> retVal = new List<BookedReelsState>(somesize);
比賽在後面的代碼,如果某些條件的作品,我需要填補相同的值這個整個列表。
當然,我可以通過foreach
循環和設置值,是否有更優雅的方式來做到這一點? 我只是在這裏學習新東西。
retVal.AddRange(Enumerable.Repeat(value, somesize));
如果你有一個IEnumerable,那麼你可以使用List.AddRange。
例子:這裏
var list = new List<BookedReelsState>(20);
var someEnumerable = new []
{
new BookedReelsState(1),
new BookedReelsState(2),
new BookedReelsState(2)
};
list.AddRange(someEnumerable);
兩件事情。
首先List<T>(int capacity)
不會在其中創建一個包含capacity
項的列表。它只是爲他們保留記憶。因此,在該示例清單上面會有它的長度等於0
但是,如果你有一個列表,並要設置它的每一個元素,你可以做這樣的:
retVal.ForEach(rv => rv = desiredValue);
凡desiredValue是您想要爲每個元素設置的值。
我也覺得很奇怪,你想填充列表中的每個元素具有相同的值。如果所有元素都是相同的,那麼這個列表沒有任何用處,但我想你可能需要預先填充一些默認值,然後再改變其中的一些。
retVal.ForEach(b => b.changedProp = newValue);
'AddRange'可能? – leppie 2010-12-16 08:13:24