Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C# syntax to initialize custom class/objects through constructor params in array?

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 } ???

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 prefere 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.

What I am missing in the above code?

like image 565
BerggreenDK Avatar asked Jun 26 '13 14:06

BerggreenDK


2 Answers

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!")         }; 
like image 187
Eric Beaulieu Avatar answered Oct 08 '22 15:10

Eric Beaulieu


this will also work without a need to create a constructure

new MyClass [] { new MyClass { Field1 = "aa", Field2 = 1 } }  
like image 29
ahaliav fox Avatar answered Oct 08 '22 14:10

ahaliav fox