2011-06-14 84 views
0

我的项目列表1和列表2中有2个列表列表。 (都包含9个字符串值,car1,car2,car3等等将阵列列表复制到数组时出现c#错误

我也有一个字符串数组,名为store_numbers,它可以包含52个字符串元素 现在我想将我的值从list1和list2复制到数组 这样做:?

list1.CopyTo(store_numbers,0); 

我认为这是正确的方式 我得到错误信息

At least one element in the source could not be cast down to the destination array type

任何人谁知道我怎样才能解决这个

谢谢!

+2

您是否阅读过此消息?你的类型是错误的。 – SLaks 2011-06-14 14:54:51

+0

你确定你的数组列表中的所有东西都是字符串? – jimplode 2011-06-14 14:55:19

+0

错误是喊你的数组之间的类型不匹配;你能发布你的代码吗(至少是所有相关数组的定义)? – dolphy 2011-06-14 14:55:49

回答

1

你可能有一些接近这一点:

ArrayList list1 = new ArrayList{"car1",2,"car3","car4","car5", 
           "car6","car7","car8","car9"}; 

string[] store_numbers = new string[] {"10","11","12","13","14","15", 
             "16","17","18"}; 

list1.CopyTo(store_numbers,0); 

以上会抛出以下错误:

`At least one element in the source array could not be cast 
    down to the destination array type.` 

没有在列表1的2号,这就是为什么你在错误这个案例。改为List<string>以避免这种情况。

11

您的ArrayList中有一些不是字符串。

最好的修复方法是不要使用ArrayList!自.NET 2.0推出以来,它已经过时了。改为使用List<string>。然后编译器会阻止你首先在列表中放入一个非字符串,并且你的副本应该工作正常。

+0

谢谢你的回答!我的数据列表包含“car1”,“car2”等值! – laz 2011-06-14 15:02:20

0

你真的确定arraylist只包含字符串吗?该错误消息指示其中一个数组列表中至少有一个对象不是字符串。如果你在发生问题的地方设置断点,你应该可以看看数组列表的内容。

此外,您不应该使用ArrayList - 它已被弃用。使用List<String>来获得类型安全。

+0

感谢您的回答!我的数据列表包含“car1”,“car2”等值! – laz 2011-06-14 15:00:51

0

确保您的ArrayList中的所有项目都具有相同的数据类型。如果没有,则必须在复制之前将所有项目转换为字符串。