C#语法通过数组中的构造函数params初始化自定义类/对象?

我有一个至少有4个变量的类,我已经为类创建了一个构造函数,以便我可以使用它进行初始化

MyClass testobj = new MyClass(1234,56789,"test text", "something else", "foo"); 

工作良好。

然后我有一个这样的数组,我需要在循环中解析,所以我想在这个数组中得到一些静态数据。

我的方法是:

 MyClass[] testobjlist = new MyClass { new MyClass(1001,1234,"Text 1", "abcdefghijklm", "ding"), new MyClass(1002,2345,"Text xx", "bla bla", "dong"), new MyClass(1003,8653,"Text yy", "blah blah even more", "bamm!") } 

但不知怎的,这给了我一个奇怪的错误,我需要额外的} ???

我不知道如果我应该提到这个,但是我使用Razor-engine 2将它用于网页。但我认为这是一个普通的C#问题?

我的解决方法是使用一个大小初始化数组,然后通过索引逐个添加元素,但我宁愿优先使用上面的解决方案,因为我可能需要在测试时按顺序上下移动项目,我有很多真实数据中超过3个。

想知道我在上面的代码中缺少什么……?

尝试在新的MyClass之后添加方括号,并在末尾添加分号

  MyClass[] testobjlist = new MyClass[] { new MyClass(1001,1234,"Text 1", "abcdefghijklm", "ding"), new MyClass(1002,2345,"Text xx", "bla bla", "dong"), new MyClass(1003,8653,"Text yy", "blah blah even more", "bamm!") }; 

你要:

 MyClass[] testobjlist = new MyClass[] { ... } 

你在最后错过了方括号。

胜利的简写:

 var myClassList = new[] { new MyClass(1001,1234,"Text 1", "abcdefghijklm", "ding"), new MyClass(1002,2345,"Text xx", "bla bla", "dong") }; 
 MyClass[] testobjlist = { new MyClass(1001,1234,"Text 1", "abcdefghijklm", "ding"), new MyClass(1002,2345,"Text xx", "bla bla", "dong"), new MyClass(1003,8653,"Text yy", "blah blah even more", "bamm!") }; 

这也可以在不需要创建结构的情况下工作

 new MyClass [] { new MyClass { Field1 = "aa", Field2 = 1 } } 
 MyClass[] testobjlist = new MyClass[noOfObjects]; for(int i = 0; i < testobjlist.Length; i++) { testobjlist[i] = new MyClass(); }