我有一个简单的抽象枚举类:
public abstract class Enumeration<T> {
protected readonly T _value;
private static readonly HashSet<Enumeration<T>> _values
= new HastSet<Enumeration<T>>();
protected Enumeration(T value) {
_value = value;
_values.Add(this);
}
}
现在我想要一个方法来返回 HashSet 中的每个元素,而不是 HashSet 本身( -> 作为 IEnumerable)。
但这不起作用:
public static IEnumerable<T> GetValues() {
return _values;
}
因为我当然不能隐式转换HashSet
为IEnumerable<T>
。我能想到的唯一方法是遍历 HashSet 并产生每个元素,但我想知道是否有一种方法可以自动执行此操作,例如当您将列表隐式转换为IEnumerable<T>
.