Преобразование значений enum в массив строк
public enum VehicleData
{
Dodge = 15001,
BMW = 15002,
Toyota = 15003
}
Я хочу получить выше значений 15001, 15002, 15003 в строковом массиве, как показано ниже:
string[] arr = { "15001", "15002", "15003" };
Я попытался ниже команды, но это дало мне массив имен вместо значений.
string[] aaa = (string[]) Enum.GetNames(typeof(VehicleData));
Я тоже пробовал string[] aaa = (string[]) Enum.GetValues(typeof(VehicleData));
но это тоже не сработало.
какие предложения?
4 ответов
использовать GetValues
Enum.GetValues(typeof(VehicleData))
.Cast<int>()
.Select(x => x.ToString())
.ToArray();
Enum.GetValues
даст вам массив всех определенных значений Enum
. Чтобы превратить их в числовые строки, вам нужно будет бросить в int
а то ToString()
их
что-то типа:
var vals = Enum.GetValues(typeof(VehicleData))
.Cast<int>()
.Select(x => x.ToString())
.ToArray();
насчет перечисления.Метод getnames?
string cars = System.Enum.GetNames (typeof(VehicleData));
попробуйте ;)
Я нашел это здесь - Как преобразовать перечисление в список в C#?, изменено для создания массива.
Enum.GetValues(typeof(VehicleData))
.Cast<int>()
.Select(v => v.ToString())
.ToArray();