我有一个列表(即Dim nList as new List(of className)
)。每个班级都有一个名为zIndex
的属性(即className.zIndex
)。是否可以通过列表的所有元素中的zIndex变量对列表中的元素进行排序?按类别值排序VB.net列表
23
A
回答
41
假设你有LINQ在您的处置:
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
或者,如果LINQ是不是你的事:
Dim list = New List(Of Person)()
list.Sort(Function(x, y) x.zIndex.CompareTo(y.zIndex))
'Will sort list in place
LINQ提供了更多的灵活性;如果您想通过多件事物订购,可以使用ThenBy
。它也使得语法稍微更清晰。
8
6
如果没有LINQ,那么你就可以实现IComparable(中类名)到类:
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
,然后从您的代码:
nList.Sort()
+0
您可以将整个'CompareTo'方法缩短为'返回_ZIndex.CompareTo(other.ZIndex)' – vcsjones
相关问题
- 1. Magento - 按类别排列产品列表
- 2. 排序下拉列表按值排列
- 3. 如何在下拉列表中按字母排序值? vb.net
- 4. MySQL按类别和子类别排序
- 5. Woocommerce按类别排序
- 6. 按类别排序结果
- 7. WordPress的排序类别下拉列表?
- 8. Magento列表按属性排序按属性排序不值
- 9. 按类别和标题排序下拉列表
- 10. 在Tkinter中按类别排序的列表?
- 11. 如何按类别对列表视图进行排序
- 12. 按列排序表
- 13. 将列排序到类别
- 14. 按降序排列二维数组vb.net
- 15. VB.NET排序IEnumerable类
- 16. 按金额排序Mysql价值列表
- 17. 按分区值排序列表
- 18. DataTables:按列排序表,固定i ++值?
- 19. Python按数字列表排序的值
- 20. 按列复选框值排序表
- 21. vb.net按X轴排序图表日期
- 22. 按子类别聚合,然后按SQL中的类别排序
- 23. Python:按“列”排序列表
- 24. 如何使用数值列表按值列表排序
- 25. 排序列表值
- 26. 按键值排序阵列
- 27. Bindingsource按列值排序,datagridview
- 28. MySQL按值排序列
- 29. SQL列按值排序
- 30. 聚集的类别,按类别顺序排序
我无法使用LINQ示例,我将如何启用该功能?我得到了第二个工作,虽然,谢谢:) – FreeSnow
@DalexL这取决于你的目标框架版本。你需要3.5或更高。 VB.NET编译器应该为你导入System.Linq命名空间。 (查看项目属性的“参考”选项卡)。 – vcsjones
好吧,我正在比较日期。当我使用我的行'a.Sort(Function(x,y)x.DelegationDate.CompareTo(y.DelegationDate))'时,它根本不排序。它保持原来的顺序。 –