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

时间:2012-12-29 08:45:26

标签: c#

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

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

由于

5 个答案:

答案 0 :(得分:3)

如果导入System.Linq命名空间,则可以执行此操作:

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

答案 1 :(得分:2)

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

但除非您使用的是.Net 1.1,否则请使用List<int>

答案 2 :(得分: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,以避免由于数据不良导致的任何InvalidCastException

答案 3 :(得分:1)

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

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

答案 4 :(得分:0)

int[] intArray = object as int[];