我有一份可用(开放)订单清单,以及已交货订单清单, 我想通过过滤" RemoveThis"中的那些来获得正确的可用订单列表。字符串列表
Dim Available As New List(Of String)
Available.Add("1")
Available.Add("2")
Available.Add("3")
Available.Add("4")
Dim RemoveThis As New List(Of String)
RemoveThis.Add("2")
RemoveThis.Add("3")
不起作用
Dim x = From a In Available
From b In RemoveThis
Select a.Except(b)
答案 0 :(得分:3)
以您的方式执行Linq查询会导致返回太多结果,因为两个集合的连接方式。你可以这样做:
Dim x = Available.Except(RemoveThis)
获取你想要的清单。
答案 1 :(得分:0)
奇怪......我正在使用List初始化程序并想出了这个:
Dim Available As New List(Of String)(New String() {"1", "2", "3", "4"})
Available.Add("1")
Available.Add("2")
Available.Add("3")
Available.Add("4")
Dim RemoveThis As New List(Of String)(New String() {"2", "3"})
Dim l As List(Of String) = Available.Except(RemoveThis).ToList
MsgBox(String.Join(", ", l))
我忘了删除.Add行,所以我最后列出了8个元素,两个1,2,3,4系列。奇怪的部分是列表l
只有两个元素。我期待四个。
不是答案,只是观察。