我正在使用动态整数泛型列表。我试图添加并按降序排序该列表。这个操作会多次发生。 目前,我正在使用Linq来完成此操作。
list.Add(b);
list = list.OrderByDescending(i => i).ToList();
有没有办法全面提高这个操作的性能。
我正在使用动态整数泛型列表。我试图添加并按降序排序该列表。这个操作会多次发生。 目前,我正在使用Linq来完成此操作。
list.Add(b);
list = list.OrderByDescending(i => i).ToList();
有没有办法全面提高这个操作的性能。
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);
List<T>
。static void InsertSorted<T>(IList<T> list, T item) where T : IComparable<T> {
list.Add(item);
var i = list.Count-1;
for ( ; i > 0 && list[i-1].CompareTo(item) < 0 ; i--) {
list[i] = list[i-1];
}
list[i] = item;
}
SortedDictionary
或SortedSet
。 - ValentinSortedList
也不允许重复。 - Sergey Kalinichenko