c# - 两个列表按升序排序另一个按降序但受约束

标签 c# .net list sorting

有一个非常基本的问题:
我需要在 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)
所以输出应该是第一个对应 0.3 的 34,然后到 0.3,然后到 0.17,然后到 0.15

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

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

最佳答案

看起来像:

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

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

关于c# - 两个列表按升序排序另一个按降序但受约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5991728/

相关文章:

c# - 将值为字典的字典投影到值为聚合的新字典中

c# - asp.net mvc 上的自定义授权属性

c# - 使用 Json.NET 将嵌套的 JSON 反序列化为平面类

python - 使用列表理解来实现递归函数

java - List 类如何工作的说明

c# - 如何将参数值放入SQL的前缀搜索中

c# - 如何在 MVVM 模式中更新模型和 View 模型?

c# - POP3 协议(protocol)是否必须在邮件服务器中实现?

.net - 如何使用 FileStream 读取超过 2 GB 的大文件

python - 分隔 (X,Y) 列表