Tôi đang cố gắng sử dụng LINQ (đến EF) để nhận danh sách DISTINCT và sau đó sắp xếp nó. Tất cả các ví dụ tôi tìm thấy sắp xếp kết quả dựa trên giá trị DISTINCT. Nhưng tôi muốn sắp xếp nó trên một lĩnh vực khác.LINQ: Riêng biệt và trật tự
Ví dụ: Bảng với 2 trường (canvasSize và canvasLength);
var sizes = (from s in ent.competitors
select s.canvasSize).Distinct().OrderBy(x => x);
Tất cả các ví dụ tôi tìm thấy cung cấp loại câu trả lời này. Nhưng nó sắp xếp theo canvasSize trong khi, tôi muốn sắp xếp theo canvasLength.
Tôi đang mắc kẹt ... Bất cứ lời khuyên được đánh giá rất cao ...
mỗi J. Skeet> Thông tin bổ sung:
company canvasSize canvasLength
abc 8x10 8
d 8x10 8
e 10x10 10
f 10x10 10
g 40x40 40
Tôi muốn nó được phân biệt trên canvasSize. Vấn đề là khi sắp xếp, nó kết quả theo thứ tự này:
10x10
40x40
8x10
Tôi muốn cùng một kết quả thiết lập nhưng được sắp xếp sử dụng canvasLength nên kết quả là:
8x10
10x10
40x40
Vâng những gì bạn muốn nó được phân biệt bởi * *? Nó sẽ thực sự giúp đỡ nếu bạn có thể cung cấp cho một số dữ liệu mẫu và kết quả mong đợi. –
Vì vậy, bạn có muốn cả canvasSize và canvasLength trong kết quả, được sắp xếp theo canvasLength không? –
Bạn đang xử lý bao nhiêu dữ liệu? Đường đi của kháng cự ít nhất là thực hiện lệnh của bạn trên cột A ở cấp DB, chọn hai cột và đưa chúng vào bộ nhớ, sau đó chọn cột đơn B của bạn và sử dụng riêng biệt ở phía bộ nhớ. Thật đơn giản để viết. Tuy nhiên, nó có thể không mở rộng nếu bạn có nhiều dữ liệu. (Điều này giả định rằng cơ sở dữ liệu không đảm bảo việc bảo quản trật tự khi sử dụng Distinct. Nếu có, sau đó dính vào DB.) –