If I have:
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?
I ran code similar to this in Visual Studio 2008 and set break points after each execution. After myList1 = getMeAList();
, myList1
contains four strings, and I pressed the plus button to make sure they weren't all nulls.
After myList2 = getMeAnotherList();
, myList2
contains six strings, and I checked to make sure they weren't null... After myList1.Concat(myList2);
myList1 contained only four strings. Why is that?
Concat
returns a new sequence without modifying the original list. Try myList1.AddRange(myList2)
.