将Object[]数组强制转换为整数数组

本文关键字:数组 转换 整数 Object | 更新日期: 2023-09-27 17:50:16

将对象数组转换为整数数组的最简单方法是什么?

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

谢谢

将Object[]数组强制转换为整数数组

如果您导入System.Linq命名空间,您可以这样做:

int[] arrayInteger = a1.Cast<int>().ToArray();

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

但是,除非您使用。net 1.1,否则请使用List<int>

(object[] eventTypes)假设eventTypes都是具有整数值的对象,则可以这样做:

        int[] eventTypeIDs = eventTypes.Select( Convert.ToInt32).ToArray();

您可以使用Array.ConvertAll

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

需要考虑的一件事是,因为这是一个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

int[] intArray = object as int[];>