C# Linq重复创建空对象?

C# Linq重复创建空对象?,c#,linq,C#,Linq,有没有办法做到以下几点: var newObjects = Enumerable.Repeat(new MyClass(), 10); myList.AddRange(newObjects); 上述方法显然不起作用,因为同一实例被添加了10次。但是,是否可以使用类似的方法,或者我是否需要为循环使用?一个简单的解决方案是在可枚举中放置一个占位符。重复,然后使用投影来构造实例: var newObjects = Enumerable.Repeat(0, 10).Select(x => new

有没有办法做到以下几点:

var newObjects = Enumerable.Repeat(new MyClass(), 10);
myList.AddRange(newObjects);

上述方法显然不起作用,因为同一实例被添加了10次。但是,是否可以使用类似的方法,或者我是否需要为循环使用

一个简单的解决方案是在
可枚举中放置一个占位符。重复
,然后使用投影来构造实例:

var newObjects = Enumerable.Repeat(0, 10).Select(x => new MyClass());

注意:在您提供的示例中,您正在立即使用
newObjects
,因此这应该是一个
IEnumerable
。通常,请注意不要多次枚举
新对象
,否则可能会产生副作用,即创建
MyClass
的其他意外实例。由于此表达式具有构造实例的副作用,因此最好立即使用
ToList
ToArray
将其具体化。一个简单的解决方案是在
Enumerable中放置一个占位符。重复
,然后使用投影来构造实例:

var newObjects = Enumerable.Repeat(0, 10).Select(x => new MyClass());

注意:在您提供的示例中,您正在立即使用
newObjects
,因此这应该是一个
IEnumerable
。通常,请注意不要多次枚举
新对象
,否则可能会产生副作用,即创建
MyClass
的其他意外实例。由于此表达式具有构造实例的副作用,因此最好立即使用
ToList
ToArray
将其具体化。请查看文档:

您总是得到相同的实例,而不是10个不同的对象

举个例子:

对于(变量i=0;i<10;i++)
添加(新的MyClass())

查看文档:

您总是得到相同的实例,而不是10个不同的对象

举个例子:

对于(变量i=0;i<10;i++)
添加(新的MyClass())

Enumerable.Range
Enumerable.Range