Trong C#, sẽ sử dụng Select()
để chiếu các phần tử của một trật tự phần tử IOrderedEnumerable
?IOrderedEnumerable.Select() giữ nguyên thứ tự phần tử?
- Nếu có, cách trả lại số
IEnumerable
và không phải làIOrderedEnumerable
? - Nếu không, làm thế nào tôi có thể đạt được điều này (ngoài việc sử dụng
foreach
)?
Lưu ý rằng câu hỏi này KHÔNG phải là bản sao của this one - Tôi chỉ có mệnh đề Select()
, wihtout Distinct()
.
EDIT
Vâng, đó là LINQ to Objects. BTW, liệu câu trả lời có khác biệt không nếu tôi thực sự đang quering một số SQL DB?
Có thể. Mặc dù tôi không sử dụng 'select', tôi thường thực hiện phân trang kết quả bằng cách đặt trước các kết quả và sau đó gọi' Skip' và 'Take' để nhận tập hợp con của những kết quả đó liên quan đến trang hiện tại. Đơn đặt hàng luôn được duy trì một cách đáng tin cậy vì vậy tôi mong đợi nó hoạt động tương tự trong khi 'Chọn' ... chỉ cần kiểm tra nó và xem – musefan
Có phải LINQ to Objects không? –
Có một chút chi tiết hơn khi sử dụng 'IOrderedEnumerable' (và nó sử dụng, chủ yếu áp dụng tiêu chí sắp xếp thứ cấp) trong bài đăng này http://stackoverflow.com/questions/8518557/when-to-return-iorderedenumerable –