Bonjour !
Sous ce titre un peu étrange, se cache un problème simple.
Pour vous situer le contexte, j'essaye de créer un importeur d'objets 3D Wavefront dans un visualisateur OpenGL créé avec OpenTK. Je vous passe les détails, mais à un moment, j'ai une liste de Vertex (qui peut être très grande).
Pour chaque vertex, je dois comparer sa position avec tous les autres vertex de la liste.
Pour y arriver, j'utilise deux boucles For imbriquées et je teste la position avec un pseudo-code du style:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
For i As Integer = 0 To groupVertices.Count - 1
    For j As Integer = 0 To groupVertices.Count - 1
        If Not i = j Then
            If groupVertices(i).Position.Equals(groupVertices(j).Position) Then
            'les vecteurs de position des deux vertex est identique
            'quelques autres calculs peuvent être faits ici
            End If
        End If
    Next
Next
Tout fonctionne comme espéré ... quand la liste contient peu d'éléments, mais ma liste peut contenir plus de 20000 éléments !!!
Et là, c'est l'horreur. Cette méthode met plus de 20 secondes à tout parcourir, même si je ne fait aucun calcul complexe (à la place des commentaires).

Est-ce qu'il existe un moyen plus rapide pour faire ce genre de comparaison ?

Merci d'avance pour vos idées.