tôi có một danh sách với một số định danh như thế này:Sắp xếp một danh sách từ một danh sách ID
List<long> docIds = new List<long>() { 6, 1, 4, 7, 2 };
Morover, tôi có một danh sách các mục <T>
, được đại diện bởi các id mô tả ở trên.
List<T> docs = GetDocsFromDb(...)
tôi cần phải giữ nguyên trật tự trong cả hai bộ sưu tập, do đó các mục trong List<T>
phải nằm trong vị trí tương đương so với năm đầu tiên (do tìm kiếm lý do cho điểm động cơ). Và quá trình này không thể thực hiện được trong hàm GetDocsFromDb()
.
Nếu cần thiết, có thể thay đổi danh sách thứ hai thành một số cấu trúc khác (ví dụ: Dictionary<long, T>
), nhưng tôi không muốn thay đổi nó.
Có cách nào đơn giản và hiệu quả để làm điều này "ordenation tùy thuộc vào một số ID" với LINQ?
bạn có chắc chắn rằng mọi 'docId' xảy ra chính xác một lần trong' tài liệu', thuộc tính nào sẽ giữ 'Id' hoặc bộ chọn 'Func' là bắt buộc? –
Jodrell
Danh sách đầu tiên có phải là "danh sách chính" không? Một từ khác, danh sách thứ hai có phải là tập con đại diện cho một phần (hoặc toàn bộ) của danh sách đầu tiên không? – code4life