两个列表,一个按升序排序,另一个按降序排序但受约束

发布于 2024-11-07 08:53:30 字数 439 浏览 0 评论 0原文

有一个非常基本的问题: 我需要在 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

Got very basic question:
I need to implement this in C#.
I have got two list Say List1 and 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

As you can see there is duplication of data points in list1 (34 in this case)
I have to sort List1 in descending order constrained on List2 such that if there is duplicated entry in List1(34) then take the highest corresponding value from List2 (here 34 has got 0.3,0.3,0.17 and 0.15)
So output should be first 34 corresponding to 0.3, then to 0.3 then to 0.17 and then to 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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

謌踐踏愛綪 2024-11-14 08:53:30

看起来像:

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

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

That looks like:

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

The result will be a sequence of an anonymous type where x corresponds to a value in list1, y corresponds to a value in list2, and the whole thing is sorted in a descending order on x then y.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文