Для этого требуется всего один SelectMany вызов:
MainList = MyLists.SelectMany(l => l).ToList();
Обратите внимание, что для этого не требуется создавать / инициализировать MainList до этого вызова, поскольку он полностью инициализируется из вызова ToList()
.
Редактировать:
Поскольку вы включили проверку null
, если вам нужно удалить элементы null
из вашего списка, вы также можете добавить эту проверку:
MainList = MyLists.SelectMany(l => l.Where(i => i != null)).ToList();
И / или фильтр для целых null
списков:
MainList = MyLists
.Where(l => l != null)
.SelectMany(l => l.Where(i => i != null))
.ToList();
Кроме того, если вы хотите добавить элементов к вашему MainList
, в отличие от MainList
«иметь только элементы» в исходных списках, вы можете использовать AddRange
still:
MainList.AddRange(MyLists.SelectMany(l => l));