Преобразование Dictionary.keyscollection в массив строк У меня есть Dictionary<string, List<Order>>, и я хочу иметь список ключей в массиве. Но когда я выбираю string[] keys = dictionary.Keys; Это не компилируется. Как преобразовать KeysCollection в массив строк? Ответ 1 Предполагая, что вы используете .NET 3.5 или новее (using System.Linq;): string[] keys = dictionary.Keys.ToArray(); В противном случае вам придется использовать метод CopyTo или использовать цикл: string[] keys = new string[dictionary.Keys.Count]; dictionary.Keys.CopyTo(keys, 0); Ответ 2 С dictionary.Keys.CopyTo (keys, 0); Если вам не нужен массив (который вам обычно не нужен), вы можете просто перебирать ключи. Ответ 3 Используйте это, если ваши ключи не имеют строку типа. Для этого требуется LINQ. string[] keys = dictionary.Keys.Select(x => x.ToString()).ToArray(); Ответ 4 К сожалению, у меня нет VS поблизости, чтобы проверить это, но я думаю, что что-то вроде этого может работать: var keysCol = dictionary.Keys; var keysList = new List<???>(keysCol); string[] keys = keysList.ToArray(); где??? это ваш ключевой тип.
Ответ 1 Предполагая, что вы используете .NET 3.5 или новее (using System.Linq;): string[] keys = dictionary.Keys.ToArray(); В противном случае вам придется использовать метод CopyTo или использовать цикл: string[] keys = new string[dictionary.Keys.Count]; dictionary.Keys.CopyTo(keys, 0);
Ответ 2 С dictionary.Keys.CopyTo (keys, 0); Если вам не нужен массив (который вам обычно не нужен), вы можете просто перебирать ключи.
Ответ 3 Используйте это, если ваши ключи не имеют строку типа. Для этого требуется LINQ. string[] keys = dictionary.Keys.Select(x => x.ToString()).ToArray();
Ответ 4 К сожалению, у меня нет VS поблизости, чтобы проверить это, но я думаю, что что-то вроде этого может работать: var keysCol = dictionary.Keys; var keysList = new List<???>(keysCol); string[] keys = keysList.ToArray(); где??? это ваш ключевой тип.