问题描述
在VB中怎么样把HashTable里面的值赋给ArrayList啊请高手们给个示例指点指点
解决方案
解决方案二:
ArrayListal=newArrayList();foreach(variinHashTable)al.Add(i.Value);
解决方案三:
大哥是在VB中不是在C#中,我现在在学习VB不会啊,C#还是比较在行的
解决方案四:
DimalAsArrayListal=NewArrayList()ForEachiAsObjectInHashTableal.Add(i.Value)
解决方案五:
就I就没有Value这个属性,不是到这位高手是怎么样点出来的啊?
解决方案六:
DimalAsArrayListal=NewArrayList()ForEachiInHashTableal.Add(i.Value)
解决方案七:
HashTable的foreach返回的是DictionaryEntry对象,虽然声明上看是object,你可以显式转换为DictionaryEntry.DimhAsNewHashtableDimarrAsNewArrayListForEachentryAsDictionaryEntryInharr.Add(entry.Value)Next
之所以C#能够直接使用.value,因为那个i是dynamic变量,这是c#4的特性。另:如果.net2及之后的版本,建议使用HashTable的泛型版本Dictionary(OfK,V)以获得类型安全。
解决方案八:
引用6楼cosmo_sei的回复:
HashTable的foreach返回的是DictionaryEntry对象,虽然声明上看是object,你可以显式转换为DictionaryEntry.VB.NETcodeDimhAsNewHashtableDimarrAsNewArrayListForEachentryAsDictionaryE……
你的解释是错的。
解决方案九:
PublicSubHSTableToArray(ByReftableAsHashtable,ByRefTarray()AsString)ReDimTarray(table.Count+table.Count-1)table.Keys.CopyTo(Tarray,0)'复制内容table.Values.CopyTo(Tarray,table.Count)'复制内容EndSub
将Hashtable内容读入Tarray,假如有2个项,则数组的第0,1个存储hashtable的键,2,3存储键值,最后按规律读出来就可以了。
解决方案十:
引用7楼caozhy的回复:
引用6楼cosmo_sei的回复:HashTable的foreach返回的是DictionaryEntry对象,虽然声明上看是object,你可以显式转换为DictionaryEntry.VB.NETcodeDimhAsNewHashtableDimarrAsNewArrayListForEachentryAsDictionaryE………
Showmewhatyougot.
解决方案十一:
和dynamic无关,var标识符会被正确类型推定。这个代码在C#3.0即可编译。