两个列表排序一个通过降序但受约束升序另一个

lad*_*adz 1 .net c# sorting list

得到了一个非常基本的问题:我需要在C#中实现它.我有两个列表Say List1和List2

清单1 23,34,45,12,34,34,67,100,34

清单2 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

清单1 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

Jon*_*eet 8

看起来像:

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

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