30

我有一个至少有 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 个。

我在上面的代码中缺少什么?

4

8 回答 8

42

尝试在 new 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!")
        };
于 2013-06-26T14:06:35.353 回答
6

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

new MyClass [] { new MyClass { Field1 = "aa", Field2 = 1 } } 
于 2018-03-13T10:22:33.367 回答
5

胜利的简写:

var myClassList = new[]
{
    new MyClass(1001,1234,"Text 1", "abcdefghijklm", "ding"),
    new MyClass(1002,2345,"Text xx", "bla bla", "dong")
};
于 2015-05-13T15:44:45.650 回答
3

你要:

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

你在最后错过了括号。

于 2013-06-26T14:05:58.433 回答
2
MyClass[] testobjlist = new MyClass[noOfObjects];
for(int i = 0; i < testobjlist.Length; i++) { testobjlist[i] = new MyClass(); }
于 2018-10-01T23:17:57.493 回答
1
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!")
    };
于 2018-02-25T15:55:45.237 回答
0

您可以将以下代码用于数组:

additionalusers[] __adiitonaluser =
{
    new additionalusers()
};
__adiitonaluser[0].Email = Userpersonal.Email;
于 2019-04-12T06:36:10.820 回答
-1
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(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!")
};
于 2021-07-03T14:09:04.607 回答