得到了非常基本的问题: 我需要在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
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
答案 0 :(得分:8)
看起来像:
var result = list1.Zip(list2, (x, y) => new { x, y })
.OrderByDescending(z => z.x)
.ThenByDescending(z => z.y);
结果将是一个匿名类型的序列,其中x
对应list1
中的值,y
对应list2
中的值,以及整个事物在x
然后y
上按降序排序。