オブジェクト配列を整数配列にキャストする最も簡単な方法は何ですか?
ArrayList al = new ArrayList();
object arrayObject = al.ToArray();
int[]arrayInteger = ?
ありがとう
オブジェクト配列を整数配列にキャストする最も簡単な方法は何ですか?
ArrayList al = new ArrayList();
object arrayObject = al.ToArray();
int[]arrayInteger = ?
ありがとう
名前空間をインポートすると、次のSystem.Linq
ことができます。
int[] arrayInteger = a1.Cast<int>().ToArray();
使用するint[]arrayInteger = (int[])al.ToArray(typeof(int));
ただし、.Net 1.1 を使用している場合を除き、List<int>
代わりにユーザー a を使用してください。
(object[] eventTypes) eventTypes がすべて整数値を持つオブジェクトであると仮定すると、次のようになります。
int[] eventTypeIDs = eventTypes.Select( Convert.ToInt32).ToArray();
あなたが使用することができます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