Не удается получить массив внутри хеш-таблицы obj - PullRequest
0 голосов
/ 19 января 2011

У меня есть массив типа Guid внутри HashTable Я получаю значения, подобные приведенным ниже, но не могу получить массив внутри

    IDictionaryEnumerator enumObj = moreTable.GetEnumerator();

                while (enumObj.MoveNext())
                {
 foreach (var obj in enumObj.Value)
                    {
                        _guidList.Add(new Guid(obj.ToString()));
                    }
}

но это не работает со мной, никто не знает, как извлечь массив из хэш-таблицы

Ответы [ 2 ]

3 голосов
/ 19 января 2011

Вместо этого вы должны использовать безопасный словарь типа и общий список 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]

1 голос
/ 19 января 2011

Полагаю, вы должны привести enumObj.Value к массиву, что позволит вам использовать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...