Vb.net Linq在2个列表中查找不常见项(字符串)
使用VB.net 我有两个列表(字符串) 下面是我如何在两个列表中找到常用项的方法: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
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