Общедоступный словарь в словарном методе
Я пытаюсь получить доступ к словарю, созданному в todictionary
метод в других процедурах.
Это то, что я хотел бы, но я получаю ошибку компиляции.
Public dctOPT As New Dictionary(Of Integer, Object)
Sub Get_RTD_OPT()
Dim lstOPT = From C In DATA.CHAINs, O In DATA.OPTIONs, U In DATA.UDLies
Where C.CONTRACT = O.CONTRACT And O.UDLY_SYM = U.UDLY_SYM
Select C.ID, C.P_C, C.STRIKE, C.CONTRACT,
O.OPT_EXCHANGE, O.OPT_EXPIRY, O.OPT_SEC_TYPE, O.SYM,
U.CURRENCY
dctOPT = lstOPT.ToDictionary(Function(Z) Z.ID)
end sub
Это компилируется, но тогда я не могу получить доступ dctOPT
в других процедурах.
dim dctOPT = lstOPT.ToDictionary(Function(Z) Z.ID)
Нужно ли мне копировать dctOPT
в другой общедоступный словарь или есть более простой метод? Любые предложения, пожалуйста?
1 ответ
Решение
Ты нуждаешься в этом:
Public dctOPT As New Dictionary(Of Integer, Object)
Sub Get_RTD_OPT()
Dim lstOPT =
From C In DATA.CHAINs, O In DATA.OPTIONs, U In DATA.UDLies
Where C.CONTRACT = O.CONTRACT And O.UDLY_SYM = U.UDLY_SYM
Select C.ID, C.P_C, C.STRIKE, C.CONTRACT,
O.OPT_EXCHANGE, O.OPT_EXPIRY, O.OPT_SEC_TYPE, O.SYM,
U.CURRENCY
dctOPT = lstOPT.ToDictionary(Function(Z) Z.ID, Function(Z) CType(Z, Object))
End Sub
Без Function(Z) CType(Z, Object)
тип создаваемого словаря был Dictionary(Of Integer, <anonymous>)
и это не может быть непосредственно назначено Dictionary(Of Integer, Object)
, Приведение правильно генерирует словарь правильного типа.