C# 排序链表
C# sorted LinkedList
我好像找不到我需要的 C#(C# 3.0 我正在使用 Unity3D)集合:
- 我需要能够在 迭代时快速添加和删除项目 就像在
LinkedList
. 中一样
- 我需要像
List
中的 Sort
一样频繁地 排序 几次(对合并排序、快速排序和基数排序中的任何一个感兴趣)
- 我需要根据不同的排序函数进行排序,因为我必须根据姓名、姓氏等不同的字段进行排序(所以
SortedList
或SortedDictionary
不好)。
列表,似乎 "almost correct" 除了它实际上是一个数组,我无法在向前迭代时随机删除项目。
LinkedList 会是完美的,但缺乏排序能力(因为链表将是自然的合并排序,而且它是稳定的,可能需要它是一个稳定的排序,现在不需要)。
最好的办法是发现 LinkedList 实际上已经存在一个 .NET 排序方法,但我不知道。
如果我有时间自己实现这样的 class,我会选择一个 LinkedList,它具有使用合并排序和自定义 lambda 作为比较器进行排序的方法,但是 .NET 似乎缺少这些东西?
Linq!
- I need to be able to add and remove items quickly while iterating like in a LinkedList.
使用 linq collection.RemoveAll(item => {conditions} );
- 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);
- 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
我好像找不到我需要的 C#(C# 3.0 我正在使用 Unity3D)集合:
- 我需要能够在 迭代时快速添加和删除项目 就像在
LinkedList
. 中一样
- 我需要像
List
中的Sort
一样频繁地 排序 几次(对合并排序、快速排序和基数排序中的任何一个感兴趣) - 我需要根据不同的排序函数进行排序,因为我必须根据姓名、姓氏等不同的字段进行排序(所以
SortedList
或SortedDictionary
不好)。
列表,似乎 "almost correct" 除了它实际上是一个数组,我无法在向前迭代时随机删除项目。
LinkedList 会是完美的,但缺乏排序能力(因为链表将是自然的合并排序,而且它是稳定的,可能需要它是一个稳定的排序,现在不需要)。
最好的办法是发现 LinkedList 实际上已经存在一个 .NET 排序方法,但我不知道。
如果我有时间自己实现这样的 class,我会选择一个 LinkedList,它具有使用合并排序和自定义 lambda 作为比较器进行排序的方法,但是 .NET 似乎缺少这些东西?
Linq!
- I need to be able to add and remove items quickly while iterating like in a LinkedList.
使用 linq collection.RemoveAll(item => {conditions} );
- 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);
- 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