J'utilise VB .NET et je sais que l'Union fonctionne normalement ByRef mais dans VB, les chaînes sont généralement traitées comme s'il s'agissait de types de données primitifs.Pourquoi la fonction Union dans LINQ ne supprime-t-elle pas les entrées en double?
Par conséquent, voici le problème:
Sub Main()
Dim firstFile, secondFile As String(), resultingFile As New StringBuilder
firstFile = My.Computer.FileSystem.ReadAllText(My.Computer.FileSystem.SpecialDirectories.Desktop & "\1.txt").Split(vbNewLine)
secondFile = My.Computer.FileSystem.ReadAllText(My.Computer.FileSystem.SpecialDirectories.Desktop & "\2.txt").Split(vbNewLine)
For Each line As String In firstFile.Union(secondFile)
resultingFile.AppendLine(line)
Next
My.Computer.FileSystem.WriteAllText(My.Computer.FileSystem.SpecialDirectories.Desktop & "\merged.txt", resultingFile.ToString, True)
End Sub
1.txt contient:
un
b
c
d
e
2.txt contient:
b
c
d
e
f
g
h
i
j
Après l'exécution du code, j'obtiens:
un
b
c
d
e
b
f
g
h
i
j
Toutes les suggestions pour faire l'acte de fonction Union comme son homologue mathématique?
Vous avez trouvé le problème. Merci beaucoup! –