将Object[]数组强制转换为整数数组
本文关键字:数组 转换 整数 Object | 更新日期: 2023-09-27 17:50:16
将对象数组转换为整数数组的最简单方法是什么?
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>
。
(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[];>