2016-05-10 6 views
1

Ich begann gerade mit Arrays und es ist erstaunlich!Wie kommt es, dass mein Array meinen Index nicht ausgibt? C#. NET

Eine kleine Sache aber, wie kommt es, dass meine for-Schleife nicht den gesamten Index oder vielmehr den Wert des Index nacheinander ausdruckt, sondern nur den letzten ausdruckt?

enter image description here

Hier ist mein Code, wenn Sie mit Betrachten des Bildes einige Probleme haben!

namespace Arrays 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 
     int[] numbers = new int[5]; 


     private void Form1_Load(object sender, EventArgs e) 
     { 
      numbers[0] = 12; 
      numbers[1] = 10; 
      numbers[2] = 25; 
      numbers[3] = 10; 
      numbers[4] = 15; 
     } 


     private void button1_Click(object sender, EventArgs e) 

     { 
      for (int i = 0; i < numbers.Length; i++) 

      displayArrays.Text = numbers[i].ToString(); 
     } 

    } 
} 

Antwort

2

Weil Sie nur Wert jedes Mal zuweisen. Ändern

displayArrays.Text = numbers[i].ToString(); 

Um

displayArrays.Text += numbers[i].ToString(); 

Oder wenn Separator benötigt wird:

displayArrays.Text += numbers[i].ToString() + ", "; // But need to worry about trailling separator. 

Wenn Sie den Index möchten, dann i Ihre aktuellen Index darstellt. numbers[i] steht für array Wert bei Index i.

+0

Oh okay! Also was ich im Wesentlichen mache ist (+ =) Hinzufügen von mehr Werten aus dem Array zum Index? –

+0

@Alexander. Matt 'displayArrays.Text' ist ein anderes Feld (oder wie Sie Index nennen). Wenn Sie einfach '=' verwenden, wird nur ein neuer Wert zugewiesen. '+ =' übersetzt in 'displayArrays.Text = displayArrays.Text + numbers [i] .ToString() +", ";'. Das heißt - aktuellen Wert aktualisieren. –

+0

Oh, das macht jetzt so viel Sinn! Vielen Dank! @DovydasSopa –

0

Versuchen Sie diesen Code

for (int i = 0; i < numbers.Length; i++) 
     displayArrays.Text += ", " + numbers[i].ToString(); 
1

Meistens andere Antworten beantwortet, was Sie benötigen, können Sie ein bisschen mit diesem Motto vereinfachen könnte.

Entfernen Sie for Schleife vollständig und platzieren Sie diese Logik.

displayArrays.Text = string.Join(",", numbers); 
+0

Ja, das ist besser. Sie müssen sich dann nicht um das abschließende Trennzeichen kümmern. –

+0

@HariPrasad werde ich später tatsächlich 26.000 Textzeilen durchlaufen, also würde ich die for-Schleife dann nicht brauchen? –

+0

Abhängig von Ihrem Fall, wenn Sie nur Zahlen anzeigen möchten, dann brauchen Sie keine Schleife. Außerdem, wenn Sie irgendeine andere Logik durchführen, können Sie es brauchen, schwer zu kommentieren, es sei denn, ich sehe vollständigen Code. –

Verwandte Themen