Попытка извлечь список ключей из .NET Dictionary
Подозреваю, что мой мозг сегодня не работает - мне нужно извлечь список ключей и т.д.:
Dictionary<string, MyClass> myDict;
List<String> myKeys = myDict.Keys;
Вторая строка не может скомпилироваться, поскольку свойство Keys возвращает класс KeyCollection, а не список < > ключевых объектов.
Ответы
Ответ 1
Используя LINQ, вы можете сделать следующее...
List<String> myKeys = myDict.Keys.ToList();
Однако в зависимости от вашей цели с ключами (выборочное перечисление и т.д.) может возникнуть больше смысла работать с коллекцией ключей, а не конвертировать в список.
Ответ 2
KeyCollection реализует интерфейс IEnumerable
.
Вы можете использовать метод расширения, чтобы преобразовать его в список.
List<String> myKeys = myDict.Keys.ToList();
Или используйте другой конструктор:
List<String> myKeys = new List<String>(myDict.Keys);
Ответ 3
Да, вы можете попробовать - IEnumerable<String> myKeys = myDict.Keys;
Всегда рекомендуется использовать IEnumerable
(более общий тип).
Ответ 4
Если вам нужен настоящий список:
List<string> myKeys = new List<string>(myDict.Keys);