C#sorted LinkedList

时间:2015-08-19 17:29:33

标签: unity3d c#-3.0

我似乎无法找到我需要的C#(C#3.0我正在使用Unity3D)集合:

  1. 我需要能够快速添加和删除项目,同时在-Command中进行迭代
  2. 我需要经常多次排序,例如pscmd = "PowerShell -Command ""{Get-ScheduledTask -TaskName 'My Task' -CimSession MYLAPTOP}""" 中的LinkedList(对mergesort,quicksort和radixsort中的任何一个感兴趣)
  3. 我需要根据不同的排序函数进行排序,因为我必须根据Name,Surname等不同的字段进行排序(所以SortList没有好处)
  4. 列表,看起来“几乎是正确的”除了它实际上是一个数组,我不能在向前迭代时随机删除项目。

    LinkedList是完美的但是错过了排序能力(对于链表是自然的mergesort,另外稳定,可能需要它是一个稳定的排序,现在不需要)。

    最好的选择是发现实际上已经为LinkedList存在.NET排序方法,我不知道它。

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

1 个答案:

答案 0 :(得分:2)

<强>的LINQ!

  
      
  1. 我需要能够像在LinkedList中一样快速地添加和删除项目。
  2.   

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

  
      
  1. 我需要多次排序,例如排序列表(对mergesort,quicksort和radixsort中的任何一个感兴趣)
  2.   

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

  
      
  1. 我需要根据不同的排序函数进行排序,因为我必须根据Name,Surname等不同的字段进行排序(所以   SortedList或SortedDictionary没有好处。)
  2.   

见#2