【问题标题】:Sorting array by multiple key values按多个键值对数组进行排序
【发布时间】:2013-09-14 02:42:50
【问题描述】:
foreach(Unit enemy in enemies.OrderByDescending(enemy=>enemy.CurrentHP))
{
    Events.UnitDamaged(enemy);
    return;
}

如何将多个键值传递给Sorting? 像

enemies.OrderByDescending(enemy => enemy.CurrentHP && enemy.MaximumHP)

【问题讨论】:

  • 您想先按一个属性排序,然后再按另一个?
  • 你的意思是像enemies.OrderByDescending(enemy => enemy.CurrentHP).ThenBy(enemy => enemy.MaximumHP)这样的吗?
  • 也可用:ThenByDescending...

标签: c# arrays linq sorting


【解决方案1】:

使用ThenBy:

enemies.OrderByDescending(enemy => enemy.CurrentHP)
       .ThenBy(enemy => enemy.MaximumHP)

ThenByDescending:

enemies.OrderByDescending(enemy => enemy.CurrentHP)
       .ThenByDescending(enemy => enemy.MaximumHP)

【讨论】:

  • 美丽。谢谢!
【解决方案2】:

试试这个:

enemies.OrderByDescending(enemy => enemy.CurrentHP)
       .ThenByDescending(enemy1 =>  enemy1.MaximumHP)

【讨论】:

    【解决方案3】:

    你可以的

    enemies.OrderByDescending(enemy => enemy.CurrentHP)
           .ThenByDescending(enemy => enemy.MaximumHP)
    

    【讨论】:

    • 这只会应用第二个排序,而忽略第一个(尽管从性能上讲,它也会执行第一个)。您需要ThenByThenByDescendingIOrderedEnumerable 的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多