2

オブジェクト配列を整数配列にキャストする最も簡単な方法は何ですか?

ArrayList al = new ArrayList();
 object arrayObject = al.ToArray(); 
int[]arrayInteger = ?

ありがとう

4

5 に答える 5

7

名前空間をインポートすると、次のSystem.Linqことができます。

int[] arrayInteger = a1.Cast<int>().ToArray();
于 2012-12-29T08:47:30.070 に答える
3

使用するint[]arrayInteger = (int[])al.ToArray(typeof(int));

ただし、.Net 1.1 を使用している場合を除き、List<int>代わりにユーザー a を使用してください。

于 2012-12-29T08:48:21.717 に答える
2

(object[] eventTypes) eventTypes がすべて整数値を持つオブジェクトであると仮定すると、次のようになります。

        int[] eventTypeIDs = eventTypes.Select( Convert.ToInt32).ToArray();
于 2013-06-26T20:47:03.147 に答える
1

あなたが使用することができますArray.ConvertAll

int[] intArray = Array.ConvertAll<object, int>(al.ToArray(), (o) => (int)o);

考慮すべきことの 1 つは、これはobject配列であるため、すべての値が正しくない可能性があることです。単純な変換ロジックを追加してエラーをキャッチできるint ため、これは便利です。ConvertAll

シナリオ:

ArrayList al = new ArrayList() { 1,"hello",3,4,5,6 };
int[] intArray = Array.ConvertAll<object, int>(al.ToArray(), (o) => { int val = -1; return int.TryParse(o.ToString(), out val) ? val : -1;});

このようにして、オブジェクトに対して を実行して、不良データによるものTryParseを回避できます。InvalidCastException

于 2012-12-29T08:59:02.297 に答える