gpt4 book ai didi

c# - 就地排序 List>

转载 作者:IT王子 更新时间:2023-10-29 04:15:28 27 4
gpt4 key购买 nike

我将如何按降序排序,List<Tuple<int, int>>使用元组的第一个元素作为确定顺序的值?它必须就地,我只知道如何使用返回新列表的 LINQ 来做到这一点。

最佳答案

您只需要提供一个 IComparer<Tuple<int, int>>Comparison<Tuple<int, int>>List<T>.Sort方法。后者可能更容易指定内联:

list.Sort((x, y) => y.Item1.CompareTo(x.Item1));

如果你想按第一个值然后是第二个值排序,它会变得有点棘手,但仍然可行。例如:

list.Sort((x, y) => {
int result = y.Item1.CompareTo(x.Item1);
return result == 0 ? y.Item2.CompareTo(x.Item2) : result;
});

编辑:我现在修改了上面的内容以降序排列。请注意,执行此操作的正确方法是颠倒比较顺序( yx 而不是 xy )。您必须只是否定 CompareTo 的返回值- 这将在 CompareTo 时失败返回 int.MinValue .

关于c# - 就地排序 List<Tuple<int, int>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4668525/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com