C# – How to concatenate Lists in C#

arrayscconcatenationlist

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?

Best Answer

Concat returns a new sequence without modifying the original list. Try myList1.AddRange(myList2).