Предположим, у меня есть два перечисления:
public enum eFruits : int
{
Apple = 1,
Pear = 2,
Banana = 3
}
public enum eAnimals : int
{
Dog = 1,
Cat = 2,
Rabbit = 3
}
Я хотел бы использовать их в выпадающих списках / контрольных списках и т. Д .; в основном как listitems. Текущий код, который я имею в качестве попытки, это:
public static class EnumHelper
{
public static IEnumerable<(int eCode, eFruits eType)> GetFruitTypesAsListItems()
{
var enums = new List<(int eCode, eFruits eType)>();
foreach (var item in (eFruits[])Enum.GetValues(typeof(eFruits)))
{
enums.Add(((int)item, item));
}
return enums;
}
}
Два вопроса с этим;
1) Я хотел бы получить это в общем виде
2) Это не очень хорошо выглядит внутри списка / выпадающего списка и т. Д., Поэтому я бы хотел использовать переопределение ToString.
Поэтому я подумал о чем-то вроде этого:
public class EnumListItem : Tuple<int, T>
{
public EnumListItem(int eCode, T eType)
: base(eCode, eType)
{ }
public override string ToString() => $"{base.Item2.ToString()} ({base.Item1})";
}
Так действует;
1) Я хотел бы использовать универсальный с кортежем
2) Хотелось бы использовать Generic для создания элементов списка на основе этого кортежа
Возможно ли это? Я не уверен, как будет выглядеть декларация об этом. На данный момент я не могу заставить его работать. Может ли кто-нибудь указать мне правильное направление?