如何在C#中创建对象的数组或ArrayList?

如何在C#中创建对象的数组或ArrayList?,c#,arrays,C#,Arrays,我有自定义对象MyClass,我需要创建它的3个实例 而不是做一些愚蠢的事情,比如: MyClass instance1 = new MyClass(); MyClass instance2 = new MyClass(); MyClass instance3 = new MyClass(); 难道我不能做这样的事吗: MyClass[] instances = new MyClass(); instances[0].somemethod; ?在循环内进行: MyClass[] insta

我有自定义对象MyClass,我需要创建它的3个实例

而不是做一些愚蠢的事情,比如:

MyClass instance1 = new MyClass();
MyClass instance2 = new MyClass();
MyClass instance3 = new MyClass();
难道我不能做这样的事吗:

MyClass[] instances = new MyClass();

instances[0].somemethod;

在循环内进行:

MyClass[] instances=new MyClass[3];
for(int i=0;i<3;i++)
{
   instances[i]= new MyClass(); 
}
MyClass[]实例=新的MyClass[3];
for(int i=0;i
使用

使用Linq:

MyClass[] instances Enumerable.Range(0, 3).Select(_ => new MyClass()).ToArray();
起始值
0
无关紧要,我们只需要一些包含3个元素的IEnumerable。或者
可枚举。重复
也可以,再次忽略第一个参数。

使用LINQ怎么样

MyClass[] instances = Enumerable.Repeat(0, 3).Select(i => new MyClass()).ToArray();

性能注意事项留给读者作为练习。;-)

这几乎就是我所拥有的!太晚了,看不出我们的答案相隔多少秒。我想你真的打败了我+1对任何使用“functional.NET”的人来说都是简洁易懂的@Timwi:errmm,什么?代码与手工实现for循环的版本完全相同,我不觉得它有多聪明。也许可以通过在linq方法之后添加换行符来提高可读性。我不确定它是否聪明,但我不认为它不可读。。然而,伯纳德的问题正是我想要的。
MyClass[] instances = new MyClass[num];
for (int i=0; i<num; i++)
{
  instances[i]=new MyClass();
}
MyClass[] instances = new MyClass[]{ new MyClass(), new MyClass(), new MyClass()};
MyClass[] instances Enumerable.Range(0, 3).Select(_ => new MyClass()).ToArray();
MyClass[] instances = Enumerable.Repeat(0, 3).Select(i => new MyClass()).ToArray();