Я уже прокомментировал это, но я все еще думаю, что это верный вариант, просто проверьте, если в вашей среде лучше одно или другое решение. В моем конкретном случае использование 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
, но он говорит, с гораздо большим знанием, чем я, что это не имеет смысла. Там есть суть, если вы хотите сравнить.