2016-11-05 2 views
0

I C# Adapter Methode bin mit, füge ich Elemente in eine Liste und danach nenne ich diese Liste ein Listenfeld zu füllen, hier meine Taste ist für das tun:Sort C# ListBox Artikel

private void button1_Click(object sender, EventArgs e) { 
    listCustomers.Items.Clear(); 
    List <Customer> customers = CustomerList.GetCustomers(); 
    List <CustomerSaldo> customersSaldo = CustomerListSaldo.GetCustomers(); 
    int total = 0; 
    int totalCustomer = 0; 
    foreach(Customer customer in customers) 
    total++; 

    listCustomers.Items.Clear(); 

    totalCustomer = total; 
    int x = totalCustomer; 

    foreach(CustomerSaldo customer2 in customersSaldo) { 
    if (x >= 1) { 
     listCustomers.Items.Add("Costumer ID # " + x + " is: " + customer2.Saldo); 
     x--; 

    } 
    } 

} 

Result

Dies ist, was ich bekommen, es ist in Ordnung, aber ich möchte wissen, ob eine Möglichkeit, dies wie in diesem Beispiel zu tun gibt:

Costumer # 1 ...
Saldo Costumer # 2 ...Saldo Costumer # 3 Saldo ...

Wenn Sie mein Code sehen, ich habe eine Variable x, diese Variable die Gesamtzahl der Kunden, so dass ich denke, dass meine Art mit diesen Variablen zu starten, aber ich weiß nicht genau wie es geht, was kann ich tun?

+0

Verwenden SortiertNach .... –

+0

@viveknuna SortiertNach? Sql? Ich verwende nicht SQL, nur C# Listen –

+0

'OrderBy', ernsthaft? Er macht ein Dekrement und Sie schlagen OrderBy vor? Wao – Tinwor

Antwort

1

die Liste umkehren und das Zählen beginnen, bis Sie das Ende erreichen:

//Reverse the list 
customersSaldo.Reverse(); 
//Add new items 
for(int i = 0; i < customers.Count; i++) 
    listCustomers.Items.Add(string.Format("Costumer ID # {0} is: {1}", (i+1).ToString(), customersSaldo[i].Saldo); 
+0

Funktioniert perfekt! Vielen Dank –