To assign IEnumerable to a new instance of IEnumerable, you will need ToList method. Here is an example:
IEnumerable instanceOne;
IEnumerable instanceTwo;
List instanceListOne = new List();
instanceListOne.Add("a");
instanceListOne.Add("b");
instanceOne = instanceListOne;
instanceTwo = instanceOne;
instanceListOne.Add("c");
foreach (string instance in instanceTwo)
{
Console.WriteLine(instance);
}
Console.WriteLine("Press any key");
Console.ReadKey();
instanceTwo = instanceOne.ToList();
instanceListOne.Add("d");
foreach (string instance in instanceTwo)
{
Console.WriteLine(instance);
}
Console.WriteLine("Press any key");
Console.ReadKey();
Notice first:
instanceListOne.Add("a");
instanceListOne.Add("b");
instanceOne = instanceListOne;
instanceTwo = instanceOne;
Then:
instanceListOne.Add("c");
I added firs "a" and "b" to instanceListOne, I assigned instanceListOne to instanceOne, and then I assigned instanceOne to instanceTwo, after that I added "c" to instanceListOne, then I went through instanceTwo and result is:

"c" is displayed also in instanceTwo.
Now to have two separate instances of IEnumerable, we need something like:
instanceTwo = instanceOne.ToList();
After that I did something like:
instanceListOne.Add("d");
Result will be still as in previous picture, "d" is not added to instanceTwo, since now we really have separate instances.
Example download from here.