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,否则请使用 a List<int>

于 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);

需要考虑的一件事是,由于这是一个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对对象执行 a 以避免InvalidCastException由于数据错误而导致的任何问题。

于 2012-12-29T08:59:02.297 回答
1

或者 int[] intArray = object as int[];

于 2020-12-16T05:53:39.063 回答