Reputation: 5004
I have a class with minimum 4 variables and I have made a constructor for the class so that I can initialize it with
MyClass testobj = new MyClass(1234,56789,"test text", "something else", "foo");
Works fine.
Then I have an array of these, that I need to parse in a loop, so I would like to get some static data into this array.
My approach was:
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!")
};
but somehow this gives me a weird error about me needing an extra } ???
Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS1513: } expected
Source Error:
Line 151: }
Line 152: }
Line 153:}
I don't know if I should mention this, but I use it for webpages using Razor-engine 2. But I think this is an ordinary C# question?
My workaround is currently to initialize the array with a size, then adding the elements one by one through index, but I would rather prefer the above solution as I might have to move the items up and down in order when testing and I have a lot more than 3 in the real data.
Wondering what I am missing in the above code?
Upvotes: 32
Views: 110470
Reputation: 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!")
};
Or
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!")
};
Upvotes: -1
Reputation: 307
You can use below code for the array:
additionalusers[] __adiitonaluser =
{
new additionalusers()
};
__adiitonaluser[0].Email = Userpersonal.Email;
Upvotes: 0
Reputation: 67
MyClass[] testobjlist = new MyClass[noOfObjects];
for(int i = 0; i < testobjlist.Length; i++) { testobjlist[i] = new MyClass(); }
Upvotes: 1
Reputation: 2257
this will also work without a need to create a constructure
new MyClass [] { new MyClass { Field1 = "aa", Field2 = 1 } }
Upvotes: 6
Reputation: 21
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!")
};
Upvotes: 1
Reputation: 2661
Shorthand for the win:
var myClassList = new[]
{
new MyClass(1001,1234,"Text 1", "abcdefghijklm", "ding"),
new MyClass(1002,2345,"Text xx", "bla bla", "dong")
};
Upvotes: 9
Reputation: 1064
Try adding square brackets after new MyClass and a semi-colon at the end
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!")
};
Upvotes: 46
Reputation: 77616
You want:
MyClass[] testobjlist = new MyClass[] { ... }
You were missing the brackets toward the end.
Upvotes: 3