将对象数组转换为整数数组的最简单方法是什么?
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,否则请使用 a 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
对对象执行 a 以避免InvalidCastException
由于数据错误而导致的任何问题。
或者
int[] intArray = object as int[];