Linq OrderBy - 重复值

blu*_*lue 1 linq vb.net sql-order-by

m_ListOfsAllFields.OrderBy(Function(x) x.DisplayOrder)
Run Code Online (Sandbox Code Playgroud)

这里我有2个字段的DisplayOrder = 0,所以orderby搞乱了,没有正确排序.如何使用orderby订购此系列?

Jar*_*Par 5

这里的问题是OrderBy不会修改集合,而是创建一个IEnumerable(Of T)正确排序的新实例.您需要将结果保存在m_listOfsAllFields值中.

m_ListOfsAllFields = m_ListOfsAllFields.OrderBy(Function(x) x.DisplayOrder)
Run Code Online (Sandbox Code Playgroud)

如果这是一个实例,List(Of T)你应该直接使用该Sort方法.

m_ListOfsAllFields.Sort(Function (l, r) l.DisplayOrder.CompareTo(r.DisplayOrder))
Run Code Online (Sandbox Code Playgroud)