【问题标题】:Sort a list of custom objects multiple times by different object properties in vb.net通过 vb.net 中的不同对象属性对自定义对象列表进行多次排序
【发布时间】:2014-08-05 17:27:58
【问题描述】:

我想按多个对象属性对自定义对象列表进行排序。

例如,我有:

MyObject.A
MyObject.B
MyObject.C

我想首先按属性“A”的值对列表进行排序,然后按 B,然后按 C。所有这些属性都是字符串(可能彼此相等,也可能不相等,可能包含也可能不包含/包含数字字符)。

在浏览网页后,我发现 something 适用于我只需要按一个属性(在本例中按“A”)对列表进行排序的情况:

MyList.Sort(Function(x, y) x.A.CompareTo(y.A))

效果很好。

所以在那之后,我想我只需要按正确的顺序做更多的排序,我尝试做这样的事情:

MyList.Sort(Function(x, y) x.C.CompareTo(y.C))
MyList.Sort(Function(x, y) x.B.CompareTo(y.B))
MyList.Sort(Function(x, y) x.A.CompareTo(y.A))

哪种方法有时有效,有时无效。如果列表条目很少(

我将如何对这样的东西进行排序?

【问题讨论】:

标签: vb.net list sorting


【解决方案1】:
MyList = (MyList.OrderBy(Function(i) i.A).
                 ThenBy(Function(i) i.B).
                 ThenBy(Function(i) i.C)).ToList()

至于为什么您现有的方法不起作用:那是difference between a stable and an unstable sortAccording to MSDN,Sort() 方法不稳定

【讨论】:

  • 甜蜜!非常感谢。像魅力一样工作!
  • 我无法使用 LINQ,还有其他解决方案吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-04
  • 1970-01-01
  • 2011-02-16
相关资源
最近更新 更多