有沒有辦法做到以下幾點:Linq重複創建空對象?
var newObjects = Enumerable.Repeat(new MyClass(), 10);
myList.AddRange(newObjects);
以上顯然是行不通的,因爲同一個實例中加入10倍。但是,有沒有類似的東西可以使用,或者我需要使用for
循環嗎?
有沒有辦法做到以下幾點:Linq重複創建空對象?
var newObjects = Enumerable.Repeat(new MyClass(), 10);
myList.AddRange(newObjects);
以上顯然是行不通的,因爲同一個實例中加入10倍。但是,有沒有類似的東西可以使用,或者我需要使用for
循環嗎?
一個簡單的辦法是把一個佔位符Enumerable.Repeat
,然後用投影來構建你的實例:
var newObjects = Enumerable.Repeat(0, 10).Select(x => new MyClass());
注意:您所提供的例子,你將立即消耗newObjects
,所以它應該是好的,這是一個IEnumerable
。一般來說,請注意不要多次枚舉newObjects
,否則您可能會產生其他意外情況MyClass
的副作用。由於此表達式具有構造實例的副作用,因此立即使用ToList
或ToArray
立即實現它可能會更好。
看看文檔: https://msdn.microsoft.com/en-us/library/bb348899(v=vs.100).aspx
你總是得到相同的實例,而不是10個不同的對象。
藉此例如:
爲(VAR I = 0;我< 10; i ++在) list.Add(新MyClass的());
''Enumerable.Range'' –