Linq to Objects: GroupBy có bảo toàn thứ tự các phần tử không?


Câu trả lời:


146

Câu trả lời tìm thấy trên MSDN : Có.

Các IGrouping<TKey, TElement>đối tượng được tạo ra theo thứ tự dựa trên thứ tự của các phần tử trong nguồn đã tạo ra khóa đầu tiên của mỗi đối tượng IGrouping<TKey, TElement>. Các phần tử trong một nhóm được tạo ra theo thứ tự xuất hiện trong nguồn .


2
Không phải nó liên quan trực tiếp đến câu hỏi nhưng vì nó có thể là một câu hỏi mà mọi người rơi vào khi tìm thấy mọi thứ không được sắp xếp tốt nên có thể quan tâm đến việc lưu ý rằng nó không phải trường hợp của PLINQ trừ khi được yêu cầu rõ ràng.
Ronan Thibaudau

8
Tài liệu đó chỉ áp dụng cho LINQ-to-object. Điều này có thể không đúng đối với các triển khai cụ thể của LINQ-to-SQL, LINQ-to-XML hoặc LINQ-to-anything-else.
leviathanbadger

1
@ aboveyou00 sau nhiều giờ cố gắng sắp xếp các nhóm theo các trường khác ngoài khóa nhóm, bạn đã cứu một ngày của tôi với nhận xét của bạn. LINQ to MySql sắp xếp các nhóm một cách tự động bằng khóa nhóm! Tôi đã phải sử dụng ToList để đưa truy vấn có thứ tự đến các đối tượng cục bộ, sau đó nhóm lại. Cảm ơn bạn.
Biệt thự Ivan Ferrer
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.