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

Ber*_*nDK 17 c# arrays constructor initialization razor-2

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

MyClass testobj = new MyClass(1234,56789,"test text", "something else", "foo");
Run Code Online (Sandbox Code Playgroud)

工作良好.

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

我的方法是:

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!")
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

小智 25

尝试在新的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!")
        };
Run Code Online (Sandbox Code Playgroud)


Ben*_*rds 9

获胜的简写:

var myClassList = new[]
{
    new MyClass(1001,1234,"Text 1", "abcdefghijklm", "ding"),
    new MyClass(1002,2345,"Text xx", "bla bla", "dong")
};
Run Code Online (Sandbox Code Playgroud)


aha*_*fox 6

这也无需创建结构即可工作

new MyClass [] { new MyClass { Field1 = "aa", Field2 = 1 } } 
Run Code Online (Sandbox Code Playgroud)