黑马程序员技术交流社区

标题: 无法将类型 "object[]" 隐式转换为 "int[]" [打印本页]

作者: xt654005440    时间: 2013-8-7 10:59
标题: 无法将类型 "object[]" 隐式转换为 "int[]"
本帖最后由 xt654005440 于 2013-8-10 10:37 编辑

RT: 现有一个若干整数元素的集合list,我想把其中的元素放到新的int[]类型数组中,int[] arr1 = list.ToArray();,报错:无法将类型 "object[]" 隐式转换为 "int[]"。请问我的这个思路可行吗,若可行要怎么才正确实现??{:soso_e132:}
作者: 范国伟    时间: 2013-8-7 11:32
父类不能隐式转换为子类 ,子类可以隐式转换成父类 list集合里面村粗的object类型,无法隐式转换为int类型,按你的思路你可以用泛型集合
  1.    List<int> ls = new List<int>(); //实例化泛型集合
  2.           //添加数据
  3.           ls.Add(11);
  4.           ls.Add(22);
  5.           ls.Add(33);
  6.           //转换为int数组
  7.           int[] arr = ls.ToArray(); //输出
  8.           for (int i = 0; i < arr.Length; i++)
  9.           {
  10.                   Console.WriteLine(arr[i]);
  11.           }
  12.           Console.ReadKey();
复制代码
希望对你有帮助
作者: zhangcheng5468    时间: 2013-8-7 11:55
本帖最后由 zhangcheng5468 于 2013-8-7 11:59 编辑
  1. object[] nums={1,5,10,6};
  2. List<object> list = new List<object>(nums);//创建list泛型集合
  3. int[] arry = (from num in list.ToArray() select (int)num).ToArray();//转型为整形数组 int是object的派生类,但int[]并不是object[]的派生类
复制代码

作者: 熊丽    时间: 2013-8-7 12:45
试试
int.Prase( list.ToArray());
作者: 高文咪    时间: 2013-8-7 13:21
.NET Framework 中的所有类均从 Object 派生,因此,是没办法像你所说的那样转换的;
你可以这样把一人数组的值转移到另一个数组:
  1.             int[] list = { 2, 9, 3, 4 };
  2.             List<int> array = new List<int>();
  3.             foreach (int i in list)
  4.             {
  5.                 array.Add(i);
  6.             }
复制代码

作者: 追梦无悔    时间: 2013-8-10 07:32
int[] arr1 =(int) list.ToArray();,
作者: 于驭龙    时间: 2013-8-15 12:30
首先数组是有长度之分的list.toArray();转换的是char[]数组..不对等.起码你 int [] arr1=new arr[list.count];然后在有foreach遍历这个list集合..取出单个int对象往arr1[0++]赋值
作者: 于驭龙    时间: 2013-8-15 12:34


  1.            List<int> array = new List<int>();
  2.          array.add(2);
  3.          array.add(3);
  4.          int[] list = new int[array.count];
  5.         int  s=0;
  6.            foreach (int i in array)

  7.             {

  8.               list[s]=i;
  9.                      s++;

  10.           }
复制代码

作者: SunshineGirl    时间: 2013-8-26 13:49
追梦无悔 发表于 2013-8-10 07:32
int[] arr1 =(int) list.ToArray();,

请抢紧时间走报名流程,如果有不明白的,可致电:82826816 转8006





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2