Tôi có một danh sách (ví dụ: Dim nList as new List(of className)
). Mỗi lớp học có một tài sản có tên là zIndex
(ví dụ: className.zIndex
). Có thể sắp xếp các phần tử của danh sách theo biến zIndex trong tất cả các phần tử của danh sách không?Sắp xếp Danh sách VB.net theo giá trị lớp
23
A
Trả lời
41
Giả sử bạn có LINQ theo ý của bạn:
Sub Main()
Dim list = New List(Of Person)()
'Pretend the list has stuff in it
Dim sorted = list.OrderBy(Function(x) x.zIndex)
End Sub
Public Class Person
Public Property zIndex As Integer
End Class
Hoặc nếu LINQ không phải là điều bạn:
Dim list = New List(Of Person)()
list.Sort(Function(x, y) x.zIndex.CompareTo(y.zIndex))
'Will sort list in place
LINQ cung cấp linh hoạt hơn; chẳng hạn như có thể sử dụng ThenBy
nếu bạn muốn đặt hàng nhiều hơn một điều. Nó cũng làm cho một cú pháp hơi sạch hơn.
8
Bạn có thể sử dụng một so sánh tùy chỉnh để sắp xếp danh sách:
nList.Sort(Function(x, y) x.zIndex.CompareTo(y.zIndex))
6
Nếu không LINQ, sau đó bạn có thể thực hiện IComparable (Tất ClassName) để lớp học của bạn:
Public Class ClassName
Implements IComparable(Of ClassName)
'Your Class Stuff...
Public Function CompareTo(ByVal other As ClassName) As Integer Implements System.IComparable(Of ClassName).CompareTo
If _ZIndex = other.ZIndex Then
Return 0
Else
If _ZIndex < other.ZIndex Then
Return -1
Else
Return 1
End If
End If
End Function
End Sub
và sau đó từ mã của bạn:
nList.Sort()
+0
Bạn có thể rút ngắn toàn bộ phương thức 'CompareTo' đó thành' Return _ZIndex.CompareTo (other.ZIndex) ' – vcsjones
Các vấn đề liên quan
- 1. Sắp xếp danh sách theo giá trị
- 2. C# Cách sắp xếp danh sách được sắp xếp theo cột giá trị
- 3. Sắp xếp đồ theo giá trị
- 4. Sắp xếp một danh sách liệt kê theo chiều dài và theo giá trị
- 5. Sắp xếp danh sách có giá trị rỗng
- 6. Cách sắp xếp danh sách theo danh sách khác?
- 7. Sắp xếp danh sách các đối tượng theo giá trị của thuộc tính
- 8. python, chuyển từ điển sang danh sách được sắp xếp theo giá trị thay vì khóa
- 9. Python: Cách sắp xếp danh sách từ điển theo một vài giá trị?
- 10. Sắp xếp một danh sách các hàng theo mục 2 (giá trị số nguyên)
- 11. Python - cách sắp xếp danh sách các giá trị số theo thứ tự tăng dần
- 12. Danh sách sắp xếp <String[]>
- 13. sắp xếp danh sách theo một số yếu tố
- 14. Python cách sắp xếp danh sách này?
- 15. Sắp xếp danh sách chung trên hai hoặc nhiều giá trị
- 16. Sắp xếp từ điển theo giá trị, sau đó nhập
- 17. Sắp xếp Danh sách để giá trị cụ thể kết thúc ở trên cùng
- 18. Sắp xếp danh sách chứa lớp tùy chỉnh
- 19. django quản trị sắp xếp danh sách trường khóa ngoài
- 20. Danh sách sắp xếp Knockout.js
- 21. Sắp xếp danh sách Python theo thứ tự giảm dần
- 22. Sắp xếp Danh sách các đối tượng theo nhiều trường
- 23. MySQL sắp xếp theo một số danh sách
- 24. Danh sách được sắp xếp theo thứ tự django
- 25. Cách sắp xếp danh sách trong Scala theo hai trường?
- 26. Làm cách nào để sắp xếp danh sách các giá trị thời gian của Python?
- 27. giá trị sắp xếp và danh sách trả lại chìa khóa từ dict python
- 28. Sắp xếp theo giá trị bảng ánh xạ trong Hibernate
- 29. Matlab - sắp xếp theo giá trị tuyệt đối
- 30. Sắp xếp Chế độ xem CouchDB theo Giá trị
Tôi không thể sử dụng ví dụ LINQ, làm cách nào để bật tính năng này? Tôi đã nhận được một thứ hai để làm việc mặc dù, nhờ :) – FreeSnow
@ DalexL Nó phụ thuộc vào phiên bản khung bạn đang nhắm mục tiêu. Bạn cần 3,5 hoặc cao hơn. Trình biên dịch VB.NET nên nhập không gian tên System.Linq cho bạn. (Nhìn vào tab Tài liệu tham khảo của thuộc tính của Dự án). – vcsjones
OK, tôi đang so sánh ngày tháng. Khi tôi sử dụng dòng của tôi 'a.Sort (Hàm (x, y) x.DelegationDate.CompareTo (y.DelegationDate))', nó không phân loại gì cả. Nó để nó theo thứ tự ban đầu. –