Ich arbeite an einer Aufgabe, in der ich die ComboBox durch Liste füllen muss und die Liste von employee.dat
Datei auffüllt. Ich bin erfolgreich in der Combo, aber während ich es sortiere, stehe ich vor einem Problem. Die Werte, die ich sortieren möchte, sind String-Nummern. Es zeigt die Werte von 0-9, aber wenn es jenseits von 9 erscheint, sieht die Combo doof aus.Problem beim Sortieren von Kombinationsfeld
Hier ist der Screenshot
Was ich brauche diese Werte Art zu tun, Mittel 10 sollte hier um 9.
führen ist, um das Code-Schnipsel, die ich noch nicht ausprobiert haben.
private void FormDelete_Load(object sender, EventArgs e)
{
//LOAD EVENT for FORM
//Clear all form controls
Reset();
//Fill the ID Combo box using data in List<T>
comboBoxID.Items.Clear();
foreach (MyClass.Employee obj in MyClass.listEmployees)
{
comboBoxID.Items.Add(obj.ID);
}
//Sort the combo box ibn ascending order
comboBoxID.Sorted = true;
}
Employee.cs
public class Employee
{
public int ID;
public string fName;
public string lName;
public string gender;
public int age;
public double hourWage;
}
public static List<Employee> listEmployees = new List<Employee>();
Empolyee.dat
1, Ann, Crowe, F, 34, 12.95
2, Bob, Costas Jr., M, 27, 8.75
3, Sue, Soppala, F, 22, 7.95
4, Bill, Barton, M, 45, 15.25
5, Jill, Jordan, F, 33, 14.75
6, Art, Ayers, M, 33, 14.75
7, Larry, Stooge, M, 55, 21.05
8, Art, Ayers, M, 33, 14.75
9, Larry, Stooge, M, 55, 21.05
10, Art, Ayers, M, 33, 14.75
11, Larry, Stooge, M, 55, 21.05
Liste Bestücken Code
if (File.Exists("employee.data"))
{
try
{
streamEmployee = new StreamReader("employee.data");
string line; //to read a line from the text file
string[] arrFields = new string[5];
while (streamEmployee.Peek() > -1)
{
line = streamEmployee.ReadLine(); //read a line of records from file
arrFields = line.Split(','); //split the line at comma junction, and save split //fields in array
MyClass.Employee objEmp = new MyClass.Employee(); //create a "specific" employee //object instance
//Assign each field from line as generic object's properties to make it "specific
objEmp.ID = Convert.ToInt32(arrFields[0].Trim()); //ID is integer
objEmp.fName = arrFields[1].Trim();
objEmp.lName = arrFields[2].Trim();
objEmp.gender = arrFields[3].Trim();
objEmp.age = Convert.ToInt32(arrFields[4].Trim()); //age is integer
objEmp.hourWage = Convert.ToDouble(arrFields[5].Trim()); //hourly wage is double
//Add this specific employee object to the List
MyClass.listEmployees.Add(objEmp);
} //while
} //try
catch (IOException err)
{
MessageBox.Show(err.Message);
error = true;
} //catch
finally
{
if (streamEmployee != null) //it is indeed representing a file and may not be closed
streamEmployee.Close();
} //finally
} //if
Ihre Datei ist bereits sortiert, wenn Sie die Sorted = True Zeile entfernen, haben Sie bereits die Elemente in der richtigen Reihenfolge – Steve
@Steve Danke für Ihre Antwort Ich habe es versucht und es funktioniert. Was aber, wenn ich die Reihenfolge von meiner Eingabequelldatei ändere? Auskommentieren der sortierten Linie ist nicht die Lösung. –
Gerade hinzugefügt eine Antwort speziell für diesen Fall – Steve