2

次のような方法があります。

public void DoIt(params MyEnum[] channels)
{

}

params で列挙型の int 値を取得する方法はありますか?

試してみvar myInts = channels.Select(x => x.Value)ましたが、うまくいきませんでした

4

7 に答える 7

7
var myInts = channels.Cast<int>();
于 2013-05-01T15:56:46.413 に答える
5

LINQ を使用せずに同じことを行う別の方法:

var vals = Array.ConvertAll(channels, c =>(int)c);
于 2013-05-01T15:56:35.137 に答える
5

select 句でキャストを実行できます。

var myInts = channels.Select(x => (int)x);
于 2013-05-01T15:55:22.690 に答える
2

var myInts = channels.Select(x=x.Value)=する必要があるため、これは機能しません=> (int)x

私はvar myInts = channels.Select(x => (int)x).ToArray();あなたが望むことをすると思います。

于 2013-05-01T15:56:26.243 に答える
1

これはそれを行う必要があります:

public void DoIt(params MyEnum[] channels)
{
   int[] ret = channels.Select(x => ((int)x)).ToArray();
}
于 2013-05-01T15:55:55.383 に答える
1

あなたがすることができます:

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

またはLINQクエリとして:

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

次に、またはを呼び出して、またはを取得できToArray()ます。ToList()myIntsMyEnum[]List<MyEnum>

于 2013-05-01T15:55:58.740 に答える