Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net Linq在2个列表中查找不常见项(字符串)_Vb.net_Linq - Fatal编程技术网

Vb.net Linq在2个列表中查找不常见项(字符串)

Vb.net Linq在2个列表中查找不常见项(字符串),vb.net,linq,Vb.net,Linq,使用VB.net 我有两个列表(字符串) 下面是我如何在两个列表中找到常用项的方法: Sub Main() Dim lstOne As New List(Of String)() _ From {"Jim", "Jack", "Kate", "Nope"} Dim lstTwo As New List(Of String)() _ From {"Jack", "Nope", "Jim"} Dim ls

使用VB.net

我有两个列表(字符串)

下面是我如何在两个列表中找到常用项的方法:

Sub Main()
        Dim lstOne As New List(Of String)() _
            From {"Jim", "Jack", "Kate", "Nope"}
        Dim lstTwo As New List(Of String)() _
            From {"Jack", "Nope", "Jim"}
        Dim lstNew As IEnumerable(Of String) = Nothing

        lstNew = lstOne.Intersect(lstTwo, StringComparer.OrdinalIgnoreCase)

    End Sub
我想使用Linq查找这两个列表中的不常见项。


我如何才能做到这一点?

要坚持纯LINQ,您可以使用
,除了

Dim inOneNotTwo As IEnumerable(Of String) = lstOne.Except(lstNew)
Dim inTwoNotOne As IEnumerable(Of String) = lstTwo.Except(lstNew)
或者,您可以使用HashSet(Of T)
和:


要保持在纯LINQ范围内,可以使用除
之外的

Dim inOneNotTwo As IEnumerable(Of String) = lstOne.Except(lstNew)
Dim inTwoNotOne As IEnumerable(Of String) = lstTwo.Except(lstNew)
或者,您可以使用HashSet(Of T)
和:

像这样:

Sub Main()
    Dim lstOne As New List(Of String)() _
        From {"Jim", "Jack", "Kate", "Nope"}
    Dim lstTwo As New List(Of String)() _
        From {"Jack", "Nope", "Jim"}
    Dim lstNew As IEnumerable(Of String) = Nothing

    lstNew = lstOne.Intersect(lstTwo, StringComparer.OrdinalIgnoreCase)

    Dim uncommon As IEnumerable(Of String) = lstOne.Union(lstTwo).Except(lstNew, StringComparer.OrdinalIgnoreCase)

    For Each element As String In uncommon
        Console.WriteLine(element)
    Next

End Sub
输出:

Kate
像这样:

Sub Main()
    Dim lstOne As New List(Of String)() _
        From {"Jim", "Jack", "Kate", "Nope"}
    Dim lstTwo As New List(Of String)() _
        From {"Jack", "Nope", "Jim"}
    Dim lstNew As IEnumerable(Of String) = Nothing

    lstNew = lstOne.Intersect(lstTwo, StringComparer.OrdinalIgnoreCase)

    Dim uncommon As IEnumerable(Of String) = lstOne.Union(lstTwo).Except(lstNew, StringComparer.OrdinalIgnoreCase)

    For Each element As String In uncommon
        Console.WriteLine(element)
    Next

End Sub
输出:

Kate