我有一個方法,如:獲取枚舉的INT值[]
public void DoIt(params MyEnum[] channels)
{
}
有沒有辦法讓在PARAMS的枚舉的整型值?
我試圖var myInts = channels.Select(x => x.Value)
但沒有運氣
我有一個方法,如:獲取枚舉的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