2016-10-27 6 views
1

Ich füge Werte aus einer Datei zu einem Array hinzu und füge diese Werte dann zu einem Listenfeld in einem Formular hinzu. Ich habe Methoden, Berechnungen durchzuführen und alles funktioniert gut, aber ich würde gerne in der Lage sein, eine Schleife zu verwenden und das Jahr vor den Werten einzufügen, die ich in das Listenfeld einfüge. Gibt es eine Möglichkeit, die .Add-Methode zu verwenden und eine Variable einzuschließen, die sich in dieser ändern wird? Etwas wie populationListbox.Items.Add(i, value); wenn i ist mein Loop-Zähler? Der Code ist unten, also möchte ich die erste Zeile in der Liste, um das Jahr zu haben, das ich mit meinem Zähler angegeben habe, gefolgt von der Grundgesamtheit. So, "1950 - 151868". Ab sofort wird nur der Wert 151868 angezeigt. Danke!Hinzufügen von Werten zu einem Listenfeld aus Array MIT Text

const int SIZE = 41; 
int[] pops = new int[SIZE]; 
int index = 0; 
int greatestChange; 
int leastChange; 
int greatestYear; 
int leastYear; 
double averageChange; 
StreamReader inputFile; 


inputFile = File.OpenText("USPopulation.txt"); 


while (!inputFile.EndOfStream && index < pops.Length) 
{ 
    pops[index] = int.Parse(inputFile.ReadLine()); 
    index++; 
} 

inputFile.Close(); 



foreach (int value in pops) 
{ 
    **populationListbox.Items.Add(value);** 
} 

greatestChange = greatestIncrease(pops) * 1000; 
leastChange = leastIncrease(pops) * 1000; 
averageChange = averageIncrease(pops) * 1000; 
greatestYear = greatestIncreaseyear(pops); 
leastYear = leastIncreaseyear(pops); 

greatestIncreaselabel.Text = greatestChange.ToString("N0"); 
leastIncreaselabel.Text = leastChange.ToString("N0"); 
averageChangelabel.Text = averageChange.ToString("N0"); 
greatestIncreaseyearlabel.Text = greatestYear.ToString(); 
leastIncreaseyearlabel.Text = leastYear.ToString(); 

Antwort

2

Gefällt mir das?

int i = 1950; 

foreach (int value in pops) 
{ 
    populationListbox.Items.Add(i.ToString() + " - " + value); 
    i++; 
} 

Ihr Leben wird viel einfacher sein, wenn Sie C# zu programmieren aufhören zu versuchen, als ob es der 1980er Jahre C waren und nutzen die Kraft der IT Framework ist:

var pops = File.ReadLines("USPopulation.txt").Select(int.Parse); 

populationListbox.Items.AddRange(pops.Select((p,i) => $"{i} - {p}")); 
+0

Perfect. Genau das habe ich gesucht. Hatte Probleme mit der Syntax. Ja, das ist eine Aufgabe, also müssen wir sagen, was er uns beigebracht hat. :) Danke für die Hilfe! – BenedictCarnel

Verwandte Themen