Je suis en train d'écrire une petite application en C# principalement pour le plaisir, et il y a un DataGridView pour afficher des données, il est lié à BindingList. Le plaisir a commencé à partir du moment où j'ai décidé de rendre le tableau triable, c'est la raison pour laquelle j'utilise BindingList. Autant que je sache, il n'y a pas de mise en œuvre standard de cela dans BindingList, mais msdn a l'article qui en parle (sur l'implémentation du tri et de la recherche pour BindingList). En résumé, quelques lignes de leur implémentation qui posent problème:
SomeClass tmp;
for(...)
{
tmp = this[i]; //rapide
this[i] = this[position]; // lent
this[position] = tmp; // lent
}
Comme le montrent les commentaires, la première attribution ne prend pas beaucoup de temps, mais les deux autres sont vraiment lentes. Je ne parviens pas à comprendre la raison derrière cela, mais à cause de cela, le tri de la liste d'environ 50 éléments prend environ deux secondes. Eh bien, je peux utiliser une solution de contournement, mais cela semble un peu moche. De plus, je veux vraiment savoir ce qui cause un tel comportement.