C# - 按对象的多个属性排序

奥利弗·拉迪尼

如果我想根据多个属性来排序列表,除了将这些属性形成为数字然后使用OrderBy我看不出有什么好的方法,例如:

int someArbitraryNumber = 1000;

List<Tuple<int, int>> test = new List<Tuple<int, int>>() {
  new Tuple<int, int>(1, 3),
  new Tuple<int, int>(1, 4),
  new Tuple<int, int>(1, 5),
  new Tuple<int, int>(2, 3),
  new Tuple<int, int>(9, 15)
};

var orderedTest = test
  .OrderBy(x => x.Item1 + x.Item2 * someArbitraryNumber);

在这里,我希望得到的列表是:

    (1, 3),
    (2, 3),
    (1, 4),
    (1, 5),
    (9, 15)

也就是说,先按第二项排序,再按第一项排序。

埃马罗

使用ThenBy()

int someArbitraryNumber = 10000; // Not used anymore

List<Tuple<int, int>> test = new List<Tuple<int, int>>() {
  new Tuple<int, int>(1, 3),
  new Tuple<int, int>(1, 4),
  new Tuple<int, int>(1, 5),
  new Tuple<int, int>(2, 3),
  new Tuple<int, int>(9, 15)
};

var orderedTest = test.OrderBy(x => x.Item2).ThenBy(x => x.Item1);

其他改进

  • var如果编译器可以找出变量的类型,则使用
  • 使用 ValueTuples,它不那么冗长((int, int)而不是Tuple<int, int>),您可以为项目使用名称
var test = new List<(int first, int second)>()
{
    (1, 3), (1, 4), (1, 5), (2, 3), (9, 15)
};

var orderedTest = test.OrderBy(x => x.second).ThenBy(x => x.first);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

c#按对象的属性对对象列表进行排序

来自分类Dev

C ++ std :: sort按属性对对象进行排序

来自分类Dev

按属性对对象列表进行排序 C#(自定义排序顺序)

来自分类Dev

在C#中,如何按对象的多个字段对对象集合进行排序?

来自分类Dev

C#:按可以为空的DateTime属性对对象列表进行排序

来自分类Dev

C#:按可为空的DateTime属性对对象列表进行排序

来自分类Dev

C#如何按任何属性对对象列表进行排序

来自分类Dev

如何在C#中按一定条件按属性对对象列表<t>进行排序

来自分类Dev

cli C ++对特定属性排序对象列表

来自分类Dev

按多个属性对对象列表进行排序和分组

来自分类Dev

按多个属性对对象数组进行排序

来自分类Dev

获取多个对象的C#属性值

来自分类Dev

对象C ++中多个属性的MinMax元素

来自分类Dev

按嵌套列表上的属性排序 C#

来自分类Dev

List <>中的C#对象频率,按对象属性

来自分类Dev

C#动态linq按Expando对象排序

来自分类Dev

C#动态linq按Expando对象排序

来自分类Dev

C#SortedObservableCollection按对象的字符串属性

来自分类Dev

C# 按对象类型对对象数组进行排序(Icomparable?)

来自分类Dev

如何按对象的多个属性进行排序 - linq4j

来自分类Dev

按多个属性对数组中的对象进行排序(可能性不存在)

来自分类Dev

维护按多个属性排序的列表?

来自分类Dev

Ruby数组按多个属性排序

来自分类Dev

按R中的多个属性排序

来自分类Dev

如何按多个属性对ID进行排序

来自分类Dev

Ruby数组按多个属性排序

来自分类Dev

使用 linq to sql 按多个属性排序

来自分类Dev

在python中以C ++风格的排序方式对多个属性的列表进行排序

来自分类Dev

按Java数组中的多个对象排序

Related 相关文章

  1. 1

    c#按对象的属性对对象列表进行排序

  2. 2

    C ++ std :: sort按属性对对象进行排序

  3. 3

    按属性对对象列表进行排序 C#(自定义排序顺序)

  4. 4

    在C#中,如何按对象的多个字段对对象集合进行排序?

  5. 5

    C#:按可以为空的DateTime属性对对象列表进行排序

  6. 6

    C#:按可为空的DateTime属性对对象列表进行排序

  7. 7

    C#如何按任何属性对对象列表进行排序

  8. 8

    如何在C#中按一定条件按属性对对象列表<t>进行排序

  9. 9

    cli C ++对特定属性排序对象列表

  10. 10

    按多个属性对对象列表进行排序和分组

  11. 11

    按多个属性对对象数组进行排序

  12. 12

    获取多个对象的C#属性值

  13. 13

    对象C ++中多个属性的MinMax元素

  14. 14

    按嵌套列表上的属性排序 C#

  15. 15

    List <>中的C#对象频率,按对象属性

  16. 16

    C#动态linq按Expando对象排序

  17. 17

    C#动态linq按Expando对象排序

  18. 18

    C#SortedObservableCollection按对象的字符串属性

  19. 19

    C# 按对象类型对对象数组进行排序(Icomparable?)

  20. 20

    如何按对象的多个属性进行排序 - linq4j

  21. 21

    按多个属性对数组中的对象进行排序(可能性不存在)

  22. 22

    维护按多个属性排序的列表?

  23. 23

    Ruby数组按多个属性排序

  24. 24

    按R中的多个属性排序

  25. 25

    如何按多个属性对ID进行排序

  26. 26

    Ruby数组按多个属性排序

  27. 27

    使用 linq to sql 按多个属性排序

  28. 28

    在python中以C ++风格的排序方式对多个属性的列表进行排序

  29. 29

    按Java数组中的多个对象排序

热门标签

归档