我一个LINQ noobie,也许有人可以点我在正确的方向。这里有什么问题?这些匿名类型似乎具有相同的签名。LINQ中,VB - 匿名类型不能转换为匿名类型
'*** Get all of the new list items'
Dim dsNewFiles = From l1 In list1 _
Where Not (From l2 In list2 _
Select l2.id, l2.timestamp).Contains(New With {l1.id, l1.timestamp})
我希望有一些方法在上面的代码突出,但我得到的编译错误:
Value of type '<anonymous type> (line n)' cannot be converted to '<anonymous type> (line n)'.
的”。载有(新增功能{l1.id,L1。时间戳})“
我假设它认为匿名类型在某些方面是不同的,但id和timestamp列在任一列表中都是相同的。他们也是以相同的顺序。两者之间还有什么不同?
[编辑7/10/2009 16时28 EST]
我试图从用户的元奈特(新泽西借助{密钥l1.id,l1.timestamp}),并将其建议的代码的固定编译错误。然而,当我用列表1和列表2跑代码如下:
List1 List2
id timestamp id timestamp
-- ---------- -- ----------
01 2009-07-10 00:00:00 01 2009-07-10 00:00:00
结果是:
dsNewFiles
id timestamp
-- ----------
01 2009-07-10 00:00:00
它应该是一个空列表。
啊。我懂了。任何想法如何做我想在那里做什么? – Daniel 2009-07-09 16:49:36
我在那里看到你的编辑...我不认为这会起作用,至少它似乎不是。这与上面的情况不一样吗?新的“Withs”会创建不同签名的对象吗? – Daniel 2009-07-09 17:05:25