Compartilhar via


Como localizar a diferença de conjunto entre duas listas (LINQ) (Visual Basic)

Este exemplo mostra como usar LINQ para comparar duas listas de cadeias de caracteres e gerar as linhas que estão em names1.txt mas não em names2.txt.

Para criar os arquivos de dados

  1. Copie names1.txt e names2.txt para sua pasta de solução, conforme mostrado em Como combinar e comparar coleções de cadeias de caracteres (LINQ) (Visual Basic).

Exemplo

Class CompareLists

    Shared Sub Main()

        ' Create the IEnumerable data sources.
        Dim names1 As String() = System.IO.File.ReadAllLines("../../../names1.txt")
        Dim names2 As String() = System.IO.File.ReadAllLines("../../../names2.txt")

        ' Create the query. Note that method syntax must be used here.
        Dim differenceQuery = names1.Except(names2)
        Console.WriteLine("The following lines are in names1.txt but not names2.txt")

        ' Execute the query.
        For Each name As String In differenceQuery
            Console.WriteLine(name)
        Next

        ' Keep console window open in debug mode.
        Console.WriteLine("Press any key to exit.")
        Console.ReadKey()
    End Sub
End Class
' Output:
' The following lines are in names1.txt but not names2.txt
' Potra, Cristina
' Noriega, Fabricio
' Aw, Kam Foo
' Toyoshima, Tim
' Guy, Wey Yuan
' Garcia, Debra

Alguns tipos de operações de consulta no Visual Basic, como Except, Distinct, Unione Concat, só podem ser expressos na sintaxe baseada em método.

Compilar o código

Crie um projeto de aplicativo de console do Visual Basic, com uma instrução Imports para o namespace System.Linq.

Consulte também