J'ai une liste de données que les utilisateurs peuvent contrôler dans l'ordre de tri.Contrôle de l'ordre de tri d'une liste à partir d'une interface utilisateur d'administration
Il ressemble à ceci
Apples /\ \/
Oranges /\ \/
pears /\ \/
banana /\ \/
Pineapples /\ \/
etc /\ \/
le/\ et/sont censés être flèches haut et bas
Lorsque l'utilisateur clique, je veux récupérer l'ordre et de prendre de tri courant une distance FRO (donc il a une valeur plus petite et sera plus élevé dans l'ordre de tri.
Lorsque l'utilisateur clique vers le bas, je ne le
opposé Je suppose que je dois aussi pour établir s'il y a déjà autre chose dans la liste avec la nouvelle valeur que je veux assigner et ajuster l'ordre de tri de cet article dans la direction opposée
Est-ce que cela semble être un bon moyen d'y parvenir?
Ou y a-t-il un moyen plus intelligent?
N'importe qui a obtenu un échantillon de code. J'utilise .net 3.5 si LINQ est OK
La liste est stockée dans un dans le cache de mémoire - IList<mycustomobj>
des suggestions reçues avec reconnaissance
EDIT: Les questions que je suis inquiet au sujet sont quand il y a pas d'ordre de tri au départ - tout sera nul. Et mon algorithme suggéré a une hypothèse implicite que l'ordre de tri sera toujours continu. Mais que se passe-t-il lorsqu'une ligne est supprimée? Il y aura une lacune dans la liste des ordres de tri, il suffit donc d'ajouter 1 et d'en retirer 1 pour faire la différence - comment gérer ce scénario?
Exactement. Échanger les valeurs de tri des deux éléments échangés. –