将对象数组转换为整数数组的最简单方法是什么?
ArrayList al = new ArrayList();
object arrayObject = al.ToArray();
int[]arrayInteger = ?
由于
答案 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[];