Ich habe eine Klasse mit mindestens 4 Variablen und habe einen Konstruktor für die Klasse erstellt, damit ich sie mit initialisieren kann
MyClass testobj = new MyClass(1234,56789,"test text", "something else", "foo");
Funktioniert gut.
Dann habe ich ein Array von diesen, die ich in einer Schleife analysieren muss, also möchte ich statische Daten in dieses Array bekommen.
Mein Ansatz war:
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!")
}
aber irgendwie gibt mir das einen seltsamen Fehler, weil ich ein Extra brauche.
Ich weiß nicht, ob ich das erwähnen sollte, aber ich verwende es für Webseiten, die die Razor-Engine 2 verwenden. Aber ich denke, das ist eine gewöhnliche C # -Frage?
Mein Workaround besteht derzeit darin, das Array mit einer Größe zu initialisieren und dann die Elemente nacheinander durch den Index hinzuzufügen. Ich würde jedoch die obige Lösung vorziehen, da ich die Elemente beim Testen nach oben und unten verschieben muss, und ich habe eine Menge mehr als 3 in den realen Daten.
Frage mich, was mir im obigen Code fehlt ...?
Fügen Sie nach dem neuen MyClass eckige Klammern hinzu und am Ende ein Semikolon
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!")
};
Abkürzung für den Sieg:
var myClassList = new[]
{
new MyClass(1001,1234,"Text 1", "abcdefghijklm", "Ding"),
new MyClass(1002,2345,"Text xx", "bla bla", "dong")
};
Sie wollen:
MyClass[] testobjlist = new MyClass[] { ... }
Sie haben die Klammern am Ende vermisst.
dies funktioniert auch, ohne dass eine Konstruktion erstellt werden muss
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(); }
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!")
};
Sie können den folgenden Code für das Array verwenden:
additionalusers[] __adiitonaluser =
{
new additionalusers()
};
__adiitonaluser[0].Email = Userpersonal.Email;