我一個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