如果我有:
List<string> myList1;
List<string> myList2;
myList1 = getMeAList();
// Checked myList1, it contains 4 strings
myList2 = getMeAnotherList();
// Checked myList2, it contains 6 strings
myList1.Concat(myList2);
// Checked mylist1, it contains 4 strings... why?
我在Visual Studio 2008中运行了与此类似的代码,并在每次执行后设置了断点。在
myList1 = getMeAList();
之后,myList1
包含四个字符串,我按下加号按钮以确保它们都不为空。在
myList2 = getMeAnotherList();
之后,myList2
包含六个字符串,并且我检查以确保它们不为空...在myList1.Concat(myList2);
之后,myList1仅包含四个字符串。这是为什么? 最佳答案
Concat
返回一个新序列without modifying the original list。尝试myList1.AddRange(myList2)
。