Я вже коментував це, але я все ще думаю, що це вірний варіант, просто перевірте, чи у вашому оточенні краще одне чи інше рішення. У моєму конкретному випадку використання source.ForEach(p => dest.Add(p))
працює краще, ніж класичне, AddRange
але я не досліджував, чому на низькому рівні.
Приклад коду можна побачити тут: https://gist.github.com/mcliment/4690433
Таким варіантом було б:
var allProducts = new List<Product>(productCollection1.Count +
productCollection2.Count +
productCollection3.Count);
productCollection1.ForEach(p => allProducts.Add(p));
productCollection2.ForEach(p => allProducts.Add(p));
productCollection3.ForEach(p => allProducts.Add(p));
Перевірте, чи працює він для вас.
Відмова : Я не виступаю за таке рішення, я вважаю Concat
найбільш зрозумілим. Я щойно заявив - в моїй дискусії з Джоном - що в моїй машині цей випадок працює краще AddRange
, але він говорить, маючи набагато більше знань, ніж я, що це не має сенсу. Є суть, якщо ви хочете порівняти.