Bonjour
J'ai une liste de mots listdico de 10 9 8 .....2 lettres
et une liste de combination listcomb de 10 9 8 ....2 lettres formé à partir de 10 choisis
avec chaque mot d'une longueur(t=10) lettres je verifie si dans la liste des combinations de 10 lettres j'ai une meme combination
si oui j'ajoute le mot à une liste

En utilisant une boucle for imbriquée dans un parallel for each ,j'obtiens des faux résultats
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 'list de mot de 10 9 8 ....2   lettres
       private listdico As New List(Of List(Of String))
       'list de combination de 10 9 8 7 6 ....2 lettres formé à partir de 10 choisis 
       private listcomb As New List(Of List(Of String))
        Dim itemletters() As Char
        Dim combletters() As Char
        Do Until found Or t  = 1
            Parallel.ForEach(list1(t), Sub(st)
 
                                                       itemletters = st.ToCharArray
                                                       Array.Sort(itemletters)
 
                                                       For Each item In list2(t)
                                                           combletters = item.ToCharArray
                                                           Array.Sort(combletters)
                                                           If itemletters = combletters Then
                                                               SyncLock listsolution
                                                                   listsolution.Add(st)
                                                               End SyncLock
                                                           End If
                                                       Next
 
                                                   End Sub)
 
 
            If listsolution.Count > 0 Then
                found = True
            Else
                t -= 1
            End If
 
        Loop
le résultat dans listsolution j'obtiens de faux résultats
si je mets un point d'arret à la ligne listsolution.Add(st)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
If itemletters = combletters Then
     SyncLock listsolution
          listsolution.Add(st)
       End SyncLock
 End If
Quand l'execution stop
je verifie la valeur de itemletters et combletters il sont différents

merci