Вы можете использовать расширение LINQ Union.
Обратите внимание, что вы можете комбинировать любой тип IEnumerable с этим методом (Array, IList и т. Д.), Поэтому вам не нужно беспокоитьсяо методе «Добавить».Вы должны понимать, что LINQ производит неизменяемые результаты, поэтому вам нужно использовать «ToList ()», «ToDictionary ()» или что угодно, если вы хотите впоследствии манипулировать коллекцией.
var list =
(IList<Student>) new []
{
new Student {FirstName = "Jane"},
new Student {FirstName = "Bill"},
};
var allStudents = list.Union(
new [] {new Student {FirstName = "Clancey"}})
.OrderBy(s => s.FirstName).ToList();
allStudents[0].FirstName = "Billy";
foreach (var s in allStudents)
{
Console.WriteLine("FirstName = {0}", s.FirstName);
}
Выход:
FirstName = Billy
FirstName = Clancey
FirstName = Jane