相关疑难解决方法(0)

Enum上的IEnumerable扩展方法

我有一个enum(下面),我希望能够使用LINQ扩展方法.

enum Suit{
    Hearts = 0,
    Diamonds = 1,
    Clubs = 2,
    Spades = 3
}
Run Code Online (Sandbox Code Playgroud)

Enum.GetValues(...)是返回类型System.Array,但我似乎无法访问ToList()扩展或其他任何类型.

我只是想写点像......

foreach(Suit s in Enum.GetValues(typeof(Suit)).Select(x=>x).Where(x=> x != param)){}
Run Code Online (Sandbox Code Playgroud)

有什么我想念的,或者有人可以向我解释为什么这是不可能的?

谢谢.

c# linq extension-methods enums

25
推荐指数
2
解决办法
9363
查看次数

如何使用Generics创建一种从枚举中创建IEnumerable的方法?

鉴于这样的枚举:

public enum City {
    London    = 1,
    Liverpool  = 20,
    Leeds       = 25
}

public enum House {
    OneFloor    = 1,
    TwoFloors = 2
}
Run Code Online (Sandbox Code Playgroud)

我使用以下代码给我一个IEnumerable:

City[] values = (City[])Enum.GetValues(typeof(City)); 
var valuesWithNames = from value in values                       
   select new { value = (int)value, name = value.ToString() }; 
Run Code Online (Sandbox Code Playgroud)

代码工作得非常好,但是我必须为很多枚举做这个.有没有办法可以创建这样做的通用方法?

c#

5
推荐指数
1
解决办法
294
查看次数

标签 统计

c# ×2

enums ×1

extension-methods ×1

linq ×1