令我惊讶的是,我得到以下声明:
public static IEnumerable<SomeType> AllEnums
=> Enum.GetValues(typeof(SomeType));
提示无法从 System.Array 转换为 System.Collection.Generic.IEnumerable。我认为后者是从前者继承而来的。显然我错了。
因为我无法对其进行 LINQ 或 .ToList,所以我不确定如何正确处理它。我宁愿避免显式转换,因为它是 enum 的一堆值,我不认为 as SomeType -ing 它会有多大用处,也.
最佳答案
通用Array
基类没有类型,因此它不实现任何类型特定的接口(interface);然而,vector 可以直接转换 - 而 GetValues
实际上返回一个 vector;所以:
public static IEnumerable<SomeType> AllEnums
= (SomeType[])Enum.GetValues(typeof(SomeType));
或者更简单:
public static SomeType[] AllEnums
= (SomeType[])Enum.GetValues(typeof(SomeType));
关于c# - 将数组转换为 IEnumerable<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27744199/