c# - C# 中是否有非唯一键排序列表泛型集合?

标签 c# collections sortedlist

我对 System.Collections.Generic.SortedList 感到有点吃惊

  1. 它要求我使用 <key, value>而不是 <value> (比较)
  2. 它只允许按值输入

这些在我想使用它的方式上看起来很古怪(尽管我确信它们正好适合其他情况)。还有没有这两个特征的集合?

最佳答案

SortedList<,>实际上是一个按键排序的 map ,而不是列表。不好的命名,也许。但是有一些方法可以根据您的具体要求来模拟您想要的东西。例如,您可以封装一个 SortedList<T, int>并添加/删除类似的内容:

// add
int count;
if(list.TryGetValue(value, out count)) list[value] = count+1;
else list[value] = 1;

最终您也可以使用一个简单的列表 ( List<> ) - 这取决于您在做什么。

在某种程度上,我预计数据绑定(bind)等会使实现立即排序的常规列表变得困难 - 您需要实现很多接口(interface)才能正常工作,因为它通常期望您添加的项目留在最后。

关于c# - C# 中是否有非唯一键排序列表泛型集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1747733/

相关文章:

c# - Entity Framework 6 中的 Fluent Api 不兼容 Entity Framework Core

c# - 删除 div 之间的间距,bootstrap

java - SortedLinkedList 删除两个节点之间的头部、尾部方法

android - 什么是使用 RecyclerView.Adapter 的 SortedList<T>?

java - 更一般地查找列表的最大值

c# - 在 .Net 中实现优先级数组集合的最快(插入速度)方法是什么?

c# - 无法使用 Visual Studio 2015 RC 在 Windows 8.1+ 通用应用程序中打开 Windows Phone 项目

c# - 如何将 XML 转换为没有属性的 JSON?

java - 对集合性能提示列表进行排序

java - java.util.List 上的 toString() 在哪里被覆盖