2013-07-19 111 views

回答

1

也許:

Public Function Hashtable2Dictionary(Of T)(ht As Hashtable) As Dictionary(Of String, T) 
    If ht Is Nothing Then Return Nothing 
    Dim dict = New Dictionary(Of String, T)(ht.Count) 
    For Each kv As DictionaryEntry In ht 
     dict.Add(kv.Key.ToString(), CType(ht(kv.Value), T)) 
    Next 
    Return dict 
End Function 

不能直接投下HashtableDictionary。您可以嘗試將HashTable中的每個對象投射到TCType使用一些技巧獲取所需的類型,例如StringInt32)。如果不能鑄造到目標類型,則會引發InvalidCastException

爲什麼你需要它?也許有更好的方法來實現你想要的。一般來說,您應該避免使用非通用集合,如ArrayListHashTable

+0

謝謝!其實我需要這個爲了使用遺留代碼:-) – jor

相關問題