2016-04-11 12 views
0

Dies ist mein erstes Mal, also ... sei sanft;) Willkommen Community!Erstellen mehrerer Objekte in Schleife

Hier ist mein Problem. Ich muss mehrere Objekte innerhalb einer Schleife erstellen. Aber ich weiß nicht, wie ich es machen soll. Schon probiert es auf diese Weise tun:

List<myClass> ObjectList = new List<MyClass>(); 

und dann:

ObjectList.Add(new MyClass(a,b)); 

Klasse mit Beschreiber und params "a" und "b" eingestellt.

Also, ich bin für diese:

class myClass 
{ 
    int a; 
    int b; 
    public MyClass(int A, int B) 
    { 
     a=A; 
     b=B; 
    } 

    class Main() 
    { 
     Random r=new Random(); 
     MyClass a1 = new MyClass(r.Next(0,11)); 
     MyClass a2 = new MyClass(r.Next(0,11)); 
     MyClass a3 = new MyClass(r.Next(0,11)); 
     MyClass a4 = new MyClass(r.Next(0,11)); 
     MyClass a5 = new MyClass(r.Next(0,11)); 
     MyClass a6 = new MyClass(r.Next(0,11)); 
    } 
} 

Und ich habe einen Weg finden, diese Objekte in der Schleife zu schaffen, denn ich weiß nicht, wie viele von ihnen werden, wie ich bin Lesen einer Matrix aus einer Datei.

+4

Also was ist das? Das Problem, warum kannst du keine Schleife benutzen? Zeigen Sie Ihre Anstrengung. Zeigen Sie, wie Ihre Datei aussieht. –

+1

Wenn Sie nicht wissen, wie viele Objekte es gibt, können Sie ein 'while (! EndOfFile) {}' verwenden und jedes Objekt erstellen und zur Liste hinzufügen. – Rob

+1

Sie können Ihren Code innerhalb einer Schleife verwenden: 'ObjectList. Add (new MyClass (r.Next (0,11), r.Next (0,11))); '. Wie es gezeigt wird, ist es schwierig, Ihr Problem zu verstehen und wie wir helfen können, es zu lösen. – Fabjan

Antwort

1

Es gibt eine gemeinsame Lösung für die Situation, in der Sie etwas initialisieren möchten, indem Sie wiederholt versuchen, ein Element aus einer Quelle zu beziehen, bis die Quelle leer ist.

Dies wird ein "Loop-and-a-half" Konstrukt (und es ist ein richtiges "strukturiertes" Konstrukt, da es eine Schleife mit einem einzigen Ausgang ist).

Der allgemeine Ansatz so geht:

while (true) 
{ 
    attempt to obtain next item; 

    if (no more items available) 
     break loop; 

    add item to collection; 
} 

Eine allgemeine Einführung in C# könnte wie folgt aussehen:

class MyClass 
{ 
} 

class MyInitData 
{ 
} 

static class Program 
{ 
    static void Main(string[] args) 
    { 
     var list = new List<MyClass>(); 

     while (true) 
     { 
      var initData = GetNextItem(); // Returns null when no more items are available. 

      if (initData == null) // No more items available. 
       break; 

      list.Add(CreateMyClassFromInitData(initData)); 
     } 
    } 

    static MyInitData GetNextItem() // Returns null when no more items are available. 
    { 
     // Code to return next item. Implementation omitted here. 
     return null; 
    } 

    static MyClass CreateMyClassFromInitData(MyInitData initData) 
    { 
     // Create a new MyClass from initData. Implementation omitted here. 
     return new MyClass(); 
    } 
} 

Als eine andere - einfacher - Beispiel hier, wie Sie über das Lesen Nummer gehen könnte Zeichenketten aus einer Textdatei und konvertiert sie in eine Liste von Ints, mit einem Loop-and-a-Hälfte:

Verwandte Themen