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
le résultat dans listsolution j'obtiens de 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
si je mets un point d'arret à la ligne listsolution.Add(st)
Quand l'execution stop
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
je verifie la valeur de itemletters et combletters il sont différents
merci
Partager