gpt4 book ai didi

c# - 在 int List 中插入一个值然后对列表进行排序的最快方法

转载 作者:行者123 更新时间:2023-12-05 03:05:46 27 4
gpt4 key购买 nike

我正在使用动态 int 泛型列表。我正在尝试添加列表,然后按降序对列表进行排序。此操作发生多次。目前我正在使用 Linq 来执行此操作。

list.Add(b);
list = list.OrderByDescending(i => i).ToList();

有没有什么方法可以提高这个操作的整体性能。

最佳答案

您当前的方法是次优,因为每次您添加一个元素时,您都会再次对整个列表进行排序,这是可以避免的,并且每次您将一个整数添加到List<int>这又是可以避免的。

因为你已经有了一个 List<int>我会使用属于此类的方法而不是使用 LINQ 来避免开销。

我的建议是创建一个这样的扩展方法:

public static class Extensions {
public static void InsertElementDescending(this List<int> source,
int element)
{
int index = source.FindLastIndex(e => e > element);
if (index == 0 || index == -1)
{
source.Insert(0, element);
return;
}
source.Insert(index + 1, element);
}
}

那么用例将是:

List<int> list = new List<int>();

list.InsertElementDescending(1);
list.InsertElementDescending(2);
list.InsertElementDescending(233);
list.InsertElementDescending(0);
list.InsertElementDescending(-2);

现在列表中的元素将按降序排列。

总体而言,这比您当前的方法具有更好的性能。

关于c# - 在 int List 中插入一个值然后对列表进行排序的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50424018/

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