Скажем, я создаю два набора кортежей так:
Dim losSPResults As List(Of spGetDataResults) = m_dcDataClasses.spGetData.ToList
Dim loTupleKeys = From t In losSPResults Select t.key1, t.key2
'' Query on an existing dataset:
Dim loTupleExistingKeys = from t in m_losSPResults Select t.key3, t.key4
Теперь я хочу выполнить операции над множествами в этих двух списках следующим образом:
Dim loTupleSetDifference = loTupleKeys.Except(loTupleExistingKeys)
Очевидно, что Linq не может выполнить компаратор для наборов, если он не знает, что наборы имеют одинаковые определения, поэтому он выдаст мне эту ошибку сборки:
Option Strict On запрещает неявное
преобразования из
«System.Collections.Generic.IEnumerable (Из
<анонимный тип>)
«System.Collections.Generic.IEnumerable (Из
<анонимный тип>) '.
Как мне работать с объявлением этих наборов, чтобы сделать их мешами? (Не так много удачи в Google)
[Изменить]
По-прежнему получаю ту же ошибку компиляции:
'*** If we have initialized the list of tools, check to make sure it's up to date
Dim loTupleDatabaseTools = From tt In lottTorqueTools _
Select StationIndex = tt.station_index, SlotNumber = tt.slot_number
Dim loTupleToolObjects = From tt In m_lottTorqueTools _
Select StationIndex = tt.StationIndex, SlotNumber = tt.SlotNumber
Dim loTupleSetDifference = loTupleDatabaseTools.Except(loTupleToolObjects)
Ошибка здесь:
Dim loTupleSetDifference = loTupleDatabaseTools.Except ( loTupleToolObjects )
Ошибка 5 Опция Strict On запрещает
неявные преобразования из
«System.Collections.Generic.IEnumerable (Из
<анонимный тип>)
«System.Collections.Generic.IEnumerable (Из
<анонимный тип>) '.