我在HashTable中有一个Guid类型的数组 我得到的值如下,但我无法获取数组
IDictionaryEnumerator enumObj = moreTable.GetEnumerator();
while (enumObj.MoveNext())
{
foreach (var obj in enumObj.Value)
{
_guidList.Add(new Guid(obj.ToString()));
}
}
但这对我来说没有任何人知道如何提取存储在Hash表中的数组
答案 0 :(得分:3)
您应该使用类型安全字典和Guid的通用列表:
Dictionary<Int32, Guid> guids = new Dictionary<Int32, Guid>();
guids.Add(1, new Guid("{25892e17-80f6-415f-9c65-7395632f0223}"));
guids.Add(2, new Guid("{e33898de-6302-4756-8f0c-5f6c5218e02e}"));
guids.Add(3, new Guid("{3a768eea-cbda-4926-a82d-831cb89092aa}"));
guids.Add(4, new Guid("{cd171f7c-560d-4a62-8d65-16b87419a58c}"));
guids.Add(5, new Guid("{17084b40-08f5-4bcd-a739-c0d08c176bad}"));
List<Guid> allGuids = new List<Guid>(guids.Values);
假设你的密钥是一个整数,但这对答案无关紧要。
如果您坚持使用HashTable:
Hashtable guids = new Hashtable();
//fill Hashtable like above
ArrayList allGuids = new ArrayList(guids.Values);
foreach (Guid guid in allGuids) {
//do something with the GUID...'
}
[来自VB.Net的所有converted]
答案 1 :(得分:1)
我猜你应该将enumObj.Value强制转换为数组,这应该允许你使用它。