我有一个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)
有什么我想念的,或者有人可以向我解释为什么这是不可能的?
谢谢.
鉴于这样的枚举:
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)
代码工作得非常好,但是我必须为很多枚举做这个.有没有办法可以创建这样做的通用方法?