获取枚举的INT值[]
我有一个方法,如:获取枚举的INT值[]
public void DoIt(params MyEnum[] channels)
{
}
有没有办法让在PARAMS的枚举的整型值?
我试图var myInts = channels.Select(x => x.Value)
但没有运气
var myInts = channels.Cast<int>();
你可以在选择子句中铸造:
var myInts = channels.Select(x => (int)x);
这应做到:
public void DoIt(params MyEnum[] channels)
{
int[] ret = channels.Select(x => ((int)x)).ToArray();
}
你可以这样做:
var myInts = channels.Select(e => (int)e);
或作为LINQ查询:
var myInts = from e in channels select (int)e;
你可以再调用ToArray()
或ToList()
上myInts
获得MyEnum[]
或List<MyEnum>
var myInts = channels.Select(x=x.Value)
这不起作用,因为=
需求是=> (int)x
我认为var myInts = channels.Select(x => (int)x).ToArray();
会做你想做的。
另一种方式做同样的,没有LINQ:
哈!任何人谁都知道,你必须使用LINQ这几天... – 2013-05-01 15:57:51
var ints = (int[]) (object) channels;
不错,虽然没有记录。 – 2013-05-05 00:24:23
什么是落后服用枚举数组的想法? – shahkalpesh 2013-05-01 15:56:20
@shahkalpesh我猜测“表达零值,一个或多个值,用enum表示,但是在内部使用它们的基本整数值” – 2013-05-01 15:58:42
@MarcGravell:谢谢。我猜测OP正在寻找使用'FlagsAttribute'结合枚举值。另外,如果传递数组,枚举值可以多次传递。 – shahkalpesh 2013-05-01 15:59:55