当前位置: 首页 > 编程语言 > C#

Enum上的IEnumerable扩展方法分享

时间:2023-04-10 17:57:14 C#

C#学习教程:枚举上的IEnumerable扩展方法enumSuit{Hearts=0,Diamonds=1,Clubs=2,Spades=3}Enum.GetValues(...)是返回类型System.Array,但我似乎无法访问ToList()扩展名或还要别的吗。我只是想写一些类似...foreach(SuitsinEnum.GetValues(typeof(Suit)).Select(x=>x).Where(x=>x!=param)){}有什么我失踪了,或者有人可以向我解释为什么这是不可能的吗?谢谢。Enum.GetValues返回一个System.Array而System.Array只实现IEnumerable而不是IEnumerable所以你需要使用Enumerable.OfType扩展方法将IEnumerable转换为IEnumerable像这样:Enum.GetValues(typeof(Suit)).OfType().其中(x=>x!=参数);编辑:我删除了对IEnumerable.Select的调用,因为它是一个没有任何有意义的翻译的冗余投影。您可以自由过滤从OfType返回的IEnumerable。Array实现了IEnumerable,因此需要使用Cast或IEnumerbleOfType来获取IEnumerble扩展,例如ToList();以上就是C#学习教程分享的全部内容:Enum上的IEnumerable扩展方法,如果对大家有用还需要了解更多关于C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: