2013-03-08 3 views
0

Je me demande s'il est possible de faire et si je pourrais boucler pour vérifier si un ArrayList est trié, et si ce n'est pas, afficher une boîte de message?vérifier si ArrayList est trié

C'est ce que j'ai essayé:

if (!aList.Sort) 
{ 
    MessageBox.Show("The list isn't sorted"); 
} 

Répondre

4

Sort() est une méthode. Je pense que vous voulez la propriété Sorted.

if (!aList.Sorted) 

Notez qu'il est possible pour les articles à être « dans l'ordre croissant » sans listbox se faire respecter l'ordre de tri. Si vous voulez juste vérifier si tous les éléments affichés sont dans l'ordre croissant, c'est une question différente.

EDIT: Pour vérifier si une séquence (qu'il s'agisse des éléments d'une zone de liste ou des éléments d'un ArrayList, qui peut s'avérer être ce qui vous intéresse) est triée, il vous suffit de parcourir ces éléments, et comparez chaque élément avec le précédent. Cela est plus facile fait avec une collection générique, mais ...

public static bool IsSorted(IEnumerable sequence) 
{ 
    // Now assuming that list 
    using (IEnumerator iterator = sequence.GetEnumerator()) 
    { 
     if (!iterator.MoveNext()) 
     { 
      // An empty sequence is always sorted 
      return true; 
     } 
     IComparable previous = (IComparable) iterator.Current; 
     while (iterator.MoveNext()) 
     { 
      IComparable next = (IComparable) iterator.Current; 
      if (next.CompareTo(previous) < 0) 
      { 
       return false; 
      } 
      previous = next; 
     } 
     return true; 
    } 
} 
+0

Erreur « System.Collections.ArrayList » ne contient pas de définition pour « Tri » et aucune méthode d'extension « Triés » accepter un premier argument de type 'System.Collections.ArrayList' pourrait être trouvé (manque-t-il une directive using ou une référence d'assembly?) –

+0

Comment codez-vous l'ordre croissant ?? –

+1

@KevinChun: Vous avez dit une listbox, pas une 'ArrayList'. Si vous demandez à propos de 'ArrayList', c'est complètement différent. Veillez à être précis lorsque vous posez des questions. –

Questions connexes