我正在从远程数据库读取一组行,从本地数据库读取类似的集合,然后使用RemoveAll删除本地已存在的远程行...
remote_events = (From a In remote.Events
Where ...etc...).ToList
local_events = (From a In local.Events
Where ...etc...).ToList
remote_events.RemoveAll(Function (ByVal event_row As Remote_Event)
(From a In local_events Where a.Identifier = event_row.Identifier).Count > 0)
但这对我来说似乎不对。当我真正需要做的是检查是否存在匹配时,我认为我不应该计算事物。我尝试了IsDBNull
和IsNothing
的各种用法,但是得到了废话。我无法使用.Except
(建议here),因为列表元素的类型不同。
有更好的方法吗?
答案 0 :(得分:5)
一种方法是:
remote_events.RemoveAll(Function(e) local_events.Exists(Function(f) f.Identifier = e.Identifier))
答案 1 :(得分:2)
我试图在没有视觉工作室的情况下这样做,所以我不确定这是否会起作用,但我想你可以沿着这些方向做一些事情,如果你要做的就是比较{{ 1}}:
Identifier
我希望这会有所帮助,至少会让你朝着正确的方向前进。