首页 > 后端开发 > C++ > 如何在 .NET 3.5 中实现通用 OrderedDictionary?

如何在 .NET 3.5 中实现通用 OrderedDictionary?

Mary-Kate Olsen
发布: 2024-12-31 11:17:10
原创
230 人浏览过

How to Implement a Generic OrderedDictionary in .NET 3.5?

实现通用 OrderedDictionary

虽然 OrderedDictionary 的通用实现在 .NET 3.5 中可能不可用,但创建一个并不太复杂。我们可以利用 KeyedCollection 进行存储并实现各种方法来对项目进行排序,例如 List 等。确实如此,有效地创建了 IList 和 IDictionary 的混合体。

接口

public interface IOrderedDictionary<TKey, TValue> : IDictionary<TKey, TValue>, IOrderedDictionary
{
    // ...
}
登录后复制

实现

public class OrderedDictionary<TKey, TValue> : IOrderedDictionary<TKey, TValue>
{
    private KeyedCollection2<TKey, KeyValuePair<TKey, TValue>> _keyedCollection;
    
    // ...
}
登录后复制

帮手类

public class KeyedCollection2<TKey, TItem> : KeyedCollection<TKey, TItem>
{
    private Func<TItem, TKey> _getKeyForItemDelegate;

    // ...
}

public class Comparer2<T> : Comparer<T>
{
    private readonly Comparison<T> _compareFunction;

    // ...
}

public class DictionaryEnumerator<TKey, TValue> : IDictionaryEnumerator, IDisposable
{
    // ...
}
登录后复制

测试

[TestClass]
public class OrderedDictionaryTests
{
    // ...
}
登录后复制

这些测试演示了已实现的OrderedDictionary的各种功能。

结论

虽然 .NET 可能不会提供通用的 OrderedDictionary 实现,使用这些资源创建您自己的实现是维护基于键的查找速度和插入顺序的可行解决方案。

以上是如何在 .NET 3.5 中实现通用 OrderedDictionary?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板