2011-10-17 3 views
-1

Possible en double:
Sorting by Name (alphabetic)Tri par nom (alphabétique) - tableaux à double

Dire que j'ai le code ci-dessous. J'ai un total de 6 boutons radio. J'ai le 5 des boutons radio fonctionnant. Le dernier bouton radio s'appelle rbRegion. Je crois que j'ai tout mis en place correctement. Il y a deux tableaux, un pour les cordes, et un pour quatre totaux trimestriels et un total annuel. Dire que je voulais trier par nom de région, je le placerais dans la zone `if (rbRegion.Checked). Qu'est-ce que je devrais exactement placer là pour le trier par ordre alphabétique et pour changer le tableau numérique correspondant.

private void btnSort_Click(object sender, EventArgs e) 
{ 
    int n; 
    decimal temp; 
    int sortCol = 0; 
    string ntemp; 
    bool swapFlag; 

    if (rb1.Checked) 
     sortCol = 0;   
    if (rb2.Checked) 
     sortCol = 1; 
    if (rb3.Checked) 
     sortCol = 2;   
    if (rb4.Checked) 
     sortCol = 3;   
    if (rbTotal.Checked) 
     sortCol = 4; 
    if (rbRegion.Checked) 
    { 
    } 
    else 
    { 
     do 
     { 
      swapFlag = false; 
      for (n = 0; n < lastIndexUsed; n++) 
      { 
       if(quarters[n,sortCol] < quarters[n+1, sortCol]) 
       { 
        //column 4 
        temp = quarters[n, 4]; 
        quarters[n, 4] = quarters[n + 1, 4]; 
        quarters[n+1, 4] = temp; 

        //col 3 
        temp = quarters[n, 3]; 
        quarters[n, 3] = quarters[n + 1, 3]; 
        quarters[n + 1, 3] = temp; 

        //col 2 
        temp = quarters[n, 2]; 
        quarters[n, 2] = quarters[n + 1, 2]; 
        quarters[n + 1, 2] = temp; 

        // col 1 
        temp = quarters[n, 1]; 
        quarters[n, 1] = quarters[n + 1, 1]; 
        quarters[n + 1, 1] = temp; 

        //col 0 
        temp = quarters[n, 0]; 
        quarters[n, 0] = quarters[n + 1, 0]; 
        quarters[n + 1, 0] = temp; 

        //name 
        ntemp = Branch[n]; 
        Branch[n] = Branch[n + 1]; 
        Branch[n + 1] = ntemp; 
        swapFlag = true;   
       }//endif 
      }//for end 
     } while (swapFlag); 
    } 
+0

Vous devriez mettre à jour votre question précédente (http://stackoverflow.com/questions/7788358/sorting-by-name-alphabetic) au lieu d'en poster une nouvelle. –

+0

Ma question que je pose maintenant est un peu différente, et je ne voulais pas trop changer ma dernière question. Maintenant, j'ai compris pourquoi ça ne fonctionnait pas, j'ai un peu joué avec le code et j'ai changé quelques choses, mais j'essaie de voir comment je pourrais le faire fonctionner à partir d'ici. – Brandon

Répondre

0

Si la valeur dans la condition rbRegion.Checked est un tableau. Vous pouvez utiliser ce code.

Array.Sort(YourStringArray); // Ascending 

Array.Reverse(YourStringArray); // Descending