gpt4 book ai didi

c# - 按数字字段排序列表并将值为 0 的对象放在底部的最佳方法是什么?

转载 作者:行者123 更新时间:2023-11-30 20:52:31 25 4
gpt4 key购买 nike

我有一个对象集合。每个对象都有一个 ranking 字段,它是一个 int。

我想按排名排序,但将没有排名(排名字段为 0 )的项目放在底部。

所以这是将 0 放在顶部的代码:

 var sorted = myObjects.OrderBy(r=>r.Ranking);

我可以创建一些名为“RankForSorting”的新属性,如果将值从 0 更改为 100000 以便正确排序,但我认为在 OrderBy 逻辑中解决这个问题(而不是更改值)会更优雅、更好。

最终结果应该是这样的

排名:

  • 1
  • 2
  • 3
  • 4
  • 0
  • 0

最佳答案

首先按照等于零的排名对对象进行排序。这会将没有排名的对象移到底部(因为将排名与零进行比较会给你 true 零排名和 false 其他排名,和 true大于 false)。比按排名添加排序以对两个“组”进行排序:

myObjects.OrderBy(r => r.Ranking == 0).ThenBy(r => r.Ranking);

关于c# - 按数字字段排序列表并将值为 0 的对象放在底部的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20824822/

25 4 0