【问题标题】:Two list sorting one by ascending other by descending but constrained两个列表按升序排序另一个按降序但受约束
【发布时间】:2011-05-13 12:21:21
【问题描述】:

有一个非常基本的问题: 我需要在 C# 中实现它。 我有两个列表说 List1 和 List2

List1 23,34,45,12,34,34,67,100,34

List2 0.1,0.3,0.1,0.2,0.15,0.17,0.91,0.81,0.3

如您所见,list1 中有重复的数据点(本例中为 34 个) 我必须在 List2 上按降序对 List1 进行排序,这样如果 List1(34) 中有重复的条目,则从 List2 中取最高的相应值(这里 34 有 0.3、0.3、0.17 和 0.15) 所以输出应该首先是 34 对应 0.3,然后到 0.3,然后到 0.17,然后到 0.15

List1 100,67,45,34,34,34,34,23,12

列表2 0.81,0.91,0.1,0.3,0.3,0.17,0.15,0.1,0.2

【问题讨论】:

  • 这是家庭作业吗?
  • 从您所写的内容中,我无法真正确定 list1 和 list2 到底是什么。我也不太明白预期的结果是什么。你能举一个更清楚的例子吗?谢谢。
  • 您是否已经在特定结构中拥有这些列表(例如 List 和 List)您是否已经有任何代码并且您对如何做有任何想法?通常很高兴表明您已经解决了问题,这样我们就知道在哪里可以更准确地提供帮助...
  • 感谢 Chris 让帖子变得清晰 :)
  • 这可能是一个非常简单的 LINQ 查询 - 你可以使用 LINQ 来完成这个家庭作业吗?

标签: c# .net list sorting


【解决方案1】:

看起来像:

var result = list1.Zip(list2, (x, y) => new { x, y })
                  .OrderByDescending(z => z.x)
                  .ThenByDescending(z => z.y);

结果将是一个匿名类型的序列,其中x对应list1中的一个值,y对应list2中的一个值,整个事情在@上按降序排列987654326@ 然后y

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 2011-08-25
    • 2014-12-11
    • 2016-10-18
    • 1970-01-01
    相关资源
    最近更新 更多