Я новичок Линк, может быть, кто-то может указать мне в правильном направлении. Что здесь не так? Кажется, что эти анонимные типы имеют одинаковые подписи.
'*** 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)'.
в ".Contains ( Новое с {l1.id, l1.timestamp} )"
Я предполагаю, что анонимные типы в некотором роде различны, но столбцы id и timestamp одинаковы в обоих списках. Они также в том же порядке. Чем еще они могут отличаться?
[Редактировать 10.07.2009 16:28 EST]
Я попробовал предложенный код от пользователя Meta-Knight (New With {Key l1.id, l1.timestamp}), и он исправил ошибку компиляции. Однако, когда я запустил код со списками List1 и List2 следующим образом:
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
Это должен был быть пустой список.