Danh sách C #. Giảm dần


150

Tôi muốn nhận một danh sách được sắp xếp theo 'Product.Name' theo thứ tự giảm dần .

Tương tự như hàm dưới đây sắp xếp danh sách theo thứ tự tăng dần, ngược lại, điều này có khả thi không?

var newList = list.OrderBy(x => x.Product.Name).ToList();

Vấn đề có thể là bạn đã viết toListthay vì ToList?
Mark Byers

1
Tôi nghĩ rằng anh ta có nghĩa là nó không chấp nhận descendingtừ khóa, bởi vì anh ta đã không bắt đầu biểu hiện của mình vớifrom x in list...
StriplingWar Warrior

1
Xin lỗi, tôi đã không sao chép chính xác mã đó, nhưng đã gõ nó từ bộ nhớ. Mã thực tế của tôi hoạt động, nhưng chỉ trả về một danh sách được sắp xếp theo thứ tự tăng dần.
PFranchise

Câu trả lời:


260

Chắc chắn rồi:

var newList = list.OrderByDescending(x => x.Product.Name).ToList();

Tài liệu: OrderByDesceinating (IEnumerable, Func) .

Đáp lại bình luận của bạn:

var newList = list.OrderByDescending(x => x.Product.Name)
                  .ThenBy(x => x.Product.Price)
                  .ToList();

2
Vì vậy, chỉnh sửa của bạn sẽ sắp xếp theo tên (từ z-> a) sau đó giá (thấp -> cao)?
PFranchise

11
Vâng, đó là chính xác. Các cuộc gọi đến OrderBy hoặc ThenBy luôn tăng dần. Các phương thức OrderByDesceinating và ThenByDesceinating là những gì bạn sử dụng để giảm dần.
StriplingWar Warrior


11
list.OrderByDescending();

làm việc cho tôi


4
Điều này không làm gì nếu không làm list = list.OrderByDesceinating (). ToList ();
Almo

8
var newList = list.OrderBy(x => x.Product.Name).Reverse()

Điều này nên làm công việc.


1

nhìn nó đoạn mã này từ dự án của tôi

Tôi đang cố gắng sắp xếp lại danh sách dựa trên một thuộc tính trong mô hình của mình,

 allEmployees = new List<Employee>(allEmployees.OrderByDescending(employee => employee.Name));

nhưng tôi gặp phải một vấn đề khi a small and capital letters exist, vì vậy để giải quyết nó, tôi đã sử dụng bộ so sánh chuỗi.

allEmployees.OrderBy(employee => employee.Name,StringComparer.CurrentCultureIgnoreCase)

-2
list = new List<ProcedureTime>(); sortedList = list.OrderByDescending(ProcedureTime=> ProcedureTime.EndTime).ToList();

Nó hoạt động để hiển thị thời gian được sắp xếp theo thứ tự giảm dần.

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.