using System.Collections.Generic;
public static void Main()
IEnumerable<Elig> masterList = new List<Elig> { new Elig() };
IEnumerable<Elig> list1 = masterList.SelectMany(x => GetSubList());
IEnumerable<Elig> list2 = masterList.SelectMany(x => GetSubList()).ToList();
list2.First().test = "Altered";
IEnumerable<Elig> list3 = masterList.SelectMany(x => new List<Elig> { new Elig { test = "Original" } });
list3.First().test = "Altered";
var subList = new List<Elig> { new Elig { test = "Original" } };
IEnumerable<Elig> list4 = masterList.SelectMany(x => subList);
list4.First().test = "Altered";
IEnumerable<Elig> list5 = GetSubList().Where(x => true);
list1.First().test = "Altered";
Console.WriteLine("List1:" + string.Join(" ", list1.Select(x => x.test)));
Console.WriteLine("List2:" + string.Join(" ", list2.Select(x => x.test)));
Console.WriteLine("List3:" + string.Join(" ", list3.Select(x => x.test)));
Console.WriteLine("List4:" + string.Join(" ", list4.Select(x => x.test)));
public static List<Elig> GetSubList()
return new List<Elig> { new Elig { test = "Original" } };