C# 排序链表

C# sorted LinkedList

我好像找不到我需要的 C#(C# 3.0 我正在使用 Unity3D)集合:

  1. 我需要能够在 迭代时快速添加和删除项目 就像在 LinkedList.
  2. 中一样
  3. 我需要像 List 中的 Sort 一样频繁地 排序 几次(对合并排序、快速排序和基数排序中的任何一个感兴趣)
  4. 我需要根据不同的排序函数进行排序,因为我必须根据姓名、姓氏等不同的字段进行排序(所以SortedListSortedDictionary 不好)。

列表,似乎 "almost correct" 除了它实际上是一个数组,我无法在向前迭代时随机删除项目。

LinkedList 会是完美的,但缺乏排序能力(因为链表将是自然的合并排序,而且它是稳定的,可能需要它是一个稳定的排序,现在不需要)。

最好的办法是发现 LinkedList 实际上已经存在一个 .NET 排序方法,但我不知道。

如果我有时间自己实现这样的 class,我会选择一个 LinkedList,它具有使用合并排序和自定义 lambda 作为比较器进行排序的方法,但是 .NET 似乎缺少这些东西?

Linq!

  1. I need to be able to add and remove items quickly while iterating like in a LinkedList.

使用 linq collection.RemoveAll(item => {conditions} );

  1. I need to sort it frequently several times like Sort in List (interested in any of mergesort, quicksort and radixsort)

使用 linq .OrderBy(item => item.Field).ThenBy(item => item.OtherField).ThenByDescending(item => item.OmgAnotherField);

  1. I need to sort according to different sort functions because I have to sort according to different fields like Name, Surname etc. (so SortedList or SortedDictionary no good).

参见#2