2016-09-22 3 views
-2

Also für den Anfang hier ist die Klasse die ich gemacht habe:Wie fülle ich eine Liste von Objekten, die Arrays enthalten?

public class Module 
{ 
    public string name = ""; 
    public string modDesc = ""; 
    public string[] chdesc = new string[8]; 
    public string[] tag = new string[8]; 
    public string[] address = new string[8]; 
} 

Nun, ich versuche, wie so eine Liste dieser Module zu machen:

List<Module> moduleList = new List<Module>();

und wenn es darum geht, diese Liste bevöl ich möchte so etwas wie dies tun:

moduleList.Add(new Module { name = "1734-IB4D", modDesc = "4-CH Diagnostic Input Module", address[0] = "this doesnt work"});

aber die letzte Eigenschaft dort von address[0] = "this doesnt work" wirft einen Fehler. Wie initialisiere ich ein neues Modul-Objekt und füge es dann meiner Liste hinzu? Muss ich das Array im Voraus erstellen und dann im obigen Beispiel hinzufügen? Was empfehlen Sie?

+1

ist dies C# oder Java? –

+1

Gute Frage @ DanielA.White, ich habe mich auch gefragt :) – d3r1ck

+1

@Capn, fügen Sie die Sprache in den Tag-Abschnitte, um die Dinge für diejenigen, die Ihnen bitte helfen erleichtern. – d3r1ck

Antwort

0

Eine Antwort auf meine eigene Frage gefunden. Anstatt jeden Eintrag auf die Variable im Add-Bereich zu setzen, würde ich den Array-Wert auf ein anderes Array setzen. Also, was ich am Ende mit war:

string[] someArray = { "1", "2", "3' }; moduleList.Add(new Module { name = "1734-IR2", modDesc = "2-CH RTD Input Module", address = someArray });

und das scheint gut zu funktionieren. Wenn jemand weiß, wie ich das, was ich oben versucht habe, richtig mache, dann poste es bitte auch hier. Schön Optionen zu haben.

+0

Sie können in einem Initialisierer nicht tun, was Sie wollen. Sie müssen es nach der Initialisierung der Klasse einstellen. –

+0

@DStanley - Sie sollten dies jedoch alles in einer Zeile tun können: 'moduleList.Add (neues Modul {name =" 1734-IR2 ", modDesc =" 2-Kanal-RTD-Eingangsmodul ", Adresse = neu [] { "1", "2", "3"}}); ' – Icemanind

+0

@Icemanind True, aber das weist der Eigenschaft ein _new_ Array zu. OP möchte das Array, das im Feldinitialisierer erstellt wurde, behalten und Element 0 auf einen bestimmten Wert setzen. –

1
List<Module> moduleList = new List<Module>(); 

Module _module = new Module(); 
_module.name = "1734-IB4D"; 
_module.modDesc = "4-CH Diagnostic Input Module"; 
_module.address[0] = "this doesnt work" 

moduleList.Add(_module); 
+0

Das hilft mir nicht weiter, da ich viele dieser Module hinzufügen muss und ich weiß nicht, wie viele ich brauche, daher wird eine Liste in der ersten verwendet Ort. Danke für die Antwort! –

Verwandte Themen