Linq OrderBy - 重复值

时间:2011-10-20 15:30:18

标签: vb.net linq sql-order-by

m_ListOfsAllFields.OrderBy(Function(x) x.DisplayOrder)

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

2 个答案:

答案 0 :(得分:5)

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

m_ListOfsAllFields = m_ListOfsAllFields.OrderBy(Function(x) x.DisplayOrder)

如果这是List(Of T)的实例,您应该直接使用Sort方法。

m_ListOfsAllFields.Sort(Function (l, r) l.DisplayOrder.CompareTo(r.DisplayOrder))

答案 1 :(得分:2)

如果两个对象对于一个OrderBy中使用的属性具有相同的值,并且您想要进一步区分,请添加ThenBy

Dim results = sequence.OrderBy(yourFunction).ThenBy(anotherFunction)