c# - .NET 中设置的可观察顺序?

标签 c# .net set

我需要一个像列表一样按顺序添加的集合。

集合也可能是可观察的。

.NET 4 中有这样的内置集吗?

最佳答案

据我所知,.NET 中没有这样的类型。我最近需要这个并最终自己实现了它;没那么难。

诀窍是结合Dictionary<T, LinkedListNode<T>>LinkedList<T> .使用字典以 O(1) 时间查询键和值,并使用列表按插入顺序迭代。您需要字典而不是集合,因为您希望能够调用 LinkedList<T>.Remove(LinkedListNode<T>)而不是 LinkedList<T>.Remove(T) .前者时间复杂度为O(1),后者为O(n)。

关于c# - .NET 中设置的可观察顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32588943/

相关文章:

c# - Expression.Equal - 如何比较可空字段和不可空字段?

c# - 是否可以按名称访问属性,这是一个变量?

c# - round(microtime(true) * 1000) 等价于 C#

python - 如何从 Python 列表中删除重复的字典(带有嵌套的字典)?

c# - 使用 HashSet<int> 创建整数集

c# - HttpRequestException 在 Windows Phone 中的激活事件中使用 HttpClient

javascript - 发送 XMLHttpRequest 未与 Controller 方法绑定(bind)

c# - 如果 List<Struct> 中的值等于给定值,则设置 bool 值

c# - 如何使用 C# 迭代分层数据并输出层次结构

javascript - 如何动态设置 Javascript 对象值?