ArryList al_list=new ArryList();
al_list.add(1);
al_list.add(2);
Int64[] id_list = (Int64[])al_list.ToArray(typeof(Int64));
这个地方就报错:源数组中至少有一个元素未能被向下转换到目标数组类型。疑问int 类型和int64类型不是在数值大小上有区别,其它的不是一样用吗,我声明一个Int64 num=0;不是也可以用的吗请大侠出来赐教一下
al_list.add(1);
al_list.add(2);
Int64[] id_list = (Int64[])al_list.ToArray(typeof(Int64));
这个地方就报错:源数组中至少有一个元素未能被向下转换到目标数组类型。疑问int 类型和int64类型不是在数值大小上有区别,其它的不是一样用吗,我声明一个Int64 num=0;不是也可以用的吗请大侠出来赐教一下
System.Collections.ArrayList al_list = new System.Collections.ArrayList();
al_list.Add(1);
al_list.Add(2); Int64[] id_list = al_list.Cast<Int64>().ToArray();
例如:
object o = 2;
Int64 i = (Int64)o;//error:强制转换失败
如果非得转换用convert吧.
还有一个更好的方法:Int64[] id_list = new long[al_list.Count];
al_list.ToArray(typeof(int)).CopyTo(id_list, 0);
ArrayList list = new ArrayList();
list.Add(1);
list.Add(2);
Int64[] values = list.ToArray().Select(o => Convert.ToInt64(o)).ToArray();
经过测试
ArryList al_list=new ArryList();
al_list.add(Convert.ToInt64(1));
al_list.add(Convert.ToInt64(1));Int64[] id_list=al_list.ToArray(typeof(Int64));