我有自定义对象MyClass,我需要创建它的3个实例。
而不是做一些像哑巴一样的事情:
MyClass instance1 = new MyClass();
MyClass instance2 = new MyClass();
MyClass instance3 = new MyClass();
我不能做这样的事情:
MyClass[] instances = new MyClass();
instances[0].somemethod;
答案 0 :(得分:7)
在循环中执行:
MyClass[] instances=new MyClass[3];
for(int i=0;i<3;i++)
{
instances[i]= new MyClass();
}
或者直接创建数组:
MyClass[] instances= new MyClass[]{new MyClass(), new MyClass(), new MyClass()};
答案 1 :(得分:3)
MyClass[] instances = new MyClass[3];
for (int i = 0; i < instances.Length; i++)
instances[i] = new MyClass();
答案 2 :(得分:2)
使用
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()};
答案 3 :(得分:2)
如何使用LINQ?
MyClass[] instances = Enumerable.Repeat(0, 3).Select(i => new MyClass()).ToArray();
性能考虑因素留给读者练习。 ; - )
答案 4 :(得分:1)
使用Linq:
MyClass[] instances Enumerable.Range(0, 3).Select(_ => new MyClass()).ToArray();
起始值0
并不重要,我们只想要一些带有3个元素的IEnumerable。或者Enumerable.Repeat
也可以工作,再次忽略第一个参数。