Tôi đã nhận xét nó nhưng tôi vẫn nghĩ là một tùy chọn hợp lệ, chỉ cần kiểm tra xem trong môi trường của bạn tốt hơn giải pháp này hay giải pháp khác. Trong trường hợp cụ thể của tôi, sử dụng hiệu suất source.ForEach(p => dest.Add(p))
tốt hơn so với cổ điển AddRange
nhưng tôi đã không điều tra lý do tại sao ở mức thấp.
Bạn có thể xem mã ví dụ tại đây: https://gist.github.com/mcliment/4690433
Vì vậy, tùy chọn sẽ là:
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));
Kiểm tra nó để xem nếu nó làm việc cho bạn.
Tuyên bố miễn trừ trách nhiệm : Tôi không ủng hộ giải pháp này, tôi thấy giải pháp Concat
rõ ràng nhất. Tôi vừa tuyên bố - trong cuộc thảo luận của tôi với Jon - rằng trong máy của tôi, trường hợp này hoạt động tốt hơn AddRange
, nhưng anh ta nói, với kiến thức nhiều hơn tôi, rằng điều này không có ý nghĩa gì. Có ý chính nếu bạn muốn so sánh.