获取Enum []的int值

时间:2013-05-01 15:54:17

标签: c# .net enums

我有一个方法如:

public void DoIt(params MyEnum[] channels)
{

}

有没有办法在参数中获取枚举的int值?

我试过var myInts = channels.Select(x => x.Value)但没有运气

7 个答案:

答案 0 :(得分:7)

var myInts = channels.Cast<int>();

答案 1 :(得分:7)

var ints = (int[]) (object) channels;

答案 2 :(得分:5)

你可以在select子句中进行强制转换:

var myInts = channels.Select(x => (int)x);

答案 3 :(得分:5)

另一种做同样的方法,没有LINQ:

var vals = Array.ConvertAll(channels, c =>(int)c);

答案 4 :(得分:2)

var myInts = channels.Select(x=x.Value)这不起作用,因为=需要=> (int)x

我认为var myInts = channels.Select(x => (int)x).ToArray();会做你想做的事。

答案 5 :(得分:1)

这应该这样做:

public void DoIt(params MyEnum[] channels)
{
   int[] ret = channels.Select(x => ((int)x)).ToArray();
}

答案 6 :(得分:1)

你可以这样做:

var myInts = channels.Select(e => (int)e);

或者作为LINQ查询:

var myInts = from e in channels select (int)e;

然后,您可以在ToArray()上致电ToList()myInts,以获得MyEnum[]List<MyEnum>