请问,这种集合操作怎么处理
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方法是有返回值的