读书人

请教这种集合操作怎么办

发布时间: 2012-12-15 15:16:03 作者: rapoo

请问,这种集合操作怎么处理


List<object> list_1 = new List<object>() { "张三","李四","王二"};
list_1.Cast<string>();
List<string> list_2 = new List<string>();
list_2 = new List<string>(list_1); //报错。具有无效参数
list_1.ForEach(x =>list_2.Add(x)); //报错。具有无效参数



1:上面的代码,集合list_1的元素是object类型,但是通过Cast方法把元素转换成了string类型,list_2为什么不能加list_1的元素?
2:怎么把list_1的元素添加到list_2中去?
[最优解释]
list_1.Cast<string>(); 这个是返回一个List<string>, 你的linst_1还是List<object>,

你可以List<string> strList = list_1.Cast<string>();
后面操作这个strList
[其他解释]
List<object> list_1 = new List<object>() { "张三","李四","王二"};
list_1.Cast<string>();
List<string> list_2 = new List<string>();
//list_2 = new List<string>(list_1);
list_1.ForEach(x =>list_2.Add(x as string));
[其他解释]
list_2.AddRange(list_1.Cast<string>().ToArray());

[其他解释]
list_2 =list_2.Contact(list_1);
[其他解释]
list_1.Cast<string>();

你这句代码没有任何意义,注意CASE方法是有返回值的,所以你的这句代码对list_1没有任何影响

你可以这样:
var list3=list_1.Cast<string>();

不过从编程角度来讲,我建议你使用OfType代替Case
[其他解释]
注意Cast方法是有返回值的

读书人网 >C#

热点推荐