В последнее время появилось несколько обновлений C #, которые означают, что вы можете использовать Enum
в качестве ограничения общего типа, и я пытаюсь использовать эту новую функцию для создания некоторых методов расширения, которые будут работать со всеми перечислениями.
Примерно так:
public static class EnumToSequenceExtension
{
public static IEnumerable<T> ToSequence<T>(this T e)
where T : Enum
{
foreach (T value in Enum.GetValues(e.GetType()))
{
yield return value;
}
}
}
Далее следует, как я хотел бы использовать этот метод, который не компилируется в том виде, в котором он сейчас находится, это попытка описать в псевдокоде, чего я пытаюсь достичь;
IEnumerable<TestEnum> sequence = TestEnum.ToSequence();
Где TestEnum
- это мой тип перечисления, например
public enum TestEnum { Hello, World }
Я ищу какой-то простой рабочий код, который можно очень просто использовать с «плавным» ощущением, под которым я подразумеваю, что он «хорошо читает».