Tôi đang triển khai một bản sao LINQ trong Lua, nhưng điều đó không quá liên quan ở đây và tôi đã có hầu hết các tính năng được thực hiện (có thể đếm/truy vấn, không phải trình biên dịch trước), nhưng không thể nghĩ ra cách thông minh để triển khai OrderBy's ThenBy.Cách thông minh để triển khai OrderBy/ThenBy là gì?
Hiện tại, tôi sắp xếp một lần, sau đó đặt vào danh sách mới rồi sắp xếp các danh sách phụ đó và cuối cùng hợp nhất lại kết quả, nhưng dường như rất lãng phí và không phù hợp, tôi chắc chắn ai đó đã tìm ra cách thông minh để thực hiện điều này (thuật toán tốt hơn), nhưng tôi không biết nó là gì. Bất kỳ manh mối nào về cách thực hiện OrderBy/Thenby một cách hiệu quả?
Lưu ý: Cấu trúc ngôn ngữ và ngôn ngữ hy vọng không có liên quan ở đây, tôi đang tìm thuật toán tổng quát, giống như nói một Phân loại nhị phân có thể được thực hiện bằng bất kỳ ngôn ngữ nào.
Chỉnh sửa: Hiện tại tôi đang làm việc trên LINQ to Object, vì vậy, bất kỳ ý tưởng nào được thực hiện đặc biệt sẽ tuyệt vời. Tôi đoán OrberBy/ThenBy là 2 cuộc gọi chức năng, không phải là một nhưng tôi có thể sai.
Nhưng nên không phải là một OrderBy/ThenBy được thực hiện trong hai cuộc gọi chức năng khác nhau? –
@Robert - ít nhất với Linq2SQL, nó sử dụng toàn bộ chuỗi các phương thức để tạo ra một biểu thức duy nhất đạt được kết quả mong muốn. Tùy thuộc vào việc bản sao của bạn có sử dụng thực thi trì hoãn hay không, nó có thể dẫn đến việc thu nhỏ thứ tự/sau đó thành một so sánh đơn lẻ. – tvanfosson
Điều này có thể được thực hiện với chỉ đúng và sai? –