Я пытаюсь сравнить элемент enum со значением базы данных;Сравнение имен (Значение) работает хорошо, но имена подлежат изменению, поэтому я должен сравнивать по идентификаторам, поэтому я назначил числа каждому элементу перечисления;
Проверка сравнения включает в себя получение случайного элемента из списканекоторых (не всех) значений расширения строки указанного перечисления.
Есть ли способ получить присвоенный номер элемента или хотя бы индекс после того, как случайная величина (randomElemnt) установлена?
Я пытался создать другую переменную
var randomElemntId = (ProductName)Enum.Parse(typeof(ProductName),randomElemnt);
Приведение к типу int также не дало желаемого результата.
Это мой пример enum с расширением строки Значение
//Value is a string extension
public enum ProductName
{
[Value("Product1")] Product1 = 2,
[Value("Product2")] Product2 = 3,
[Value("Product3")] Product3 = 4,
[Value("Product4")] Product4 = 1,
[Value("None")] None = 0
}
Пример списка, который я использую.Обратите внимание, что не все элементы enum присутствуют;Переменная, которая получает случайный элемент списка
//contains some enum values
var Products = new List<string>
{
ProductName.Product1.GetValue(),
ProductName.Product2.GetValue(),
ProductName.Product3.GetValue(),
};
//returns random element from the list
var randomElemnt = Products.RandomElement();