没有合适的资源?快使用搜索试试~ 我知道了~
本文实例讲述了C#实现自定义Dictionary类。分享给大家供大家参考。具体如下: 1.关于MyDictionary类 本文中实现的MyDictionary类具有如下功能 1)可以增加、修改、删除键值对 2)可以通过索引器,找到一个键对应的值 3)可以遍历打印类中全部的键值对 4)可以将类中的序列转化为有序的(不排序、升序、降序)List类型 MyDictionary类是一个具有两个参数的泛型类,内部机制采用以键值对(KeyValuePair)类型为元素的双向链表(LinkedList)实现 2.实现代码 class MyDictioinary<TKey> { Linke
资源推荐
资源详情
资源评论
C#实现自定义实现自定义Dictionary类实例类实例
本文实例讲述了C#实现自定义Dictionary类。分享给大家供大家参考。具体如下:
1.关于MyDictionary类
本文中实现的MyDictionary类具有如下功能
1)可以增加、修改、删除键值对
2)可以通过索引器,找到一个键对应的值
3)可以遍历打印类中全部的键值对
4)可以将类中的序列转化为有序的(不排序、升序、降序)List类型
MyDictionary类是一个具有两个参数的泛型类,内部机制采用以键值对(KeyValuePair)类型为元素的双向链表
(LinkedList)实现
2.实现代码
class MyDictioinary<TKey, TValue>
{
LinkedList<KeyValuePair<TKey, TValue>> llDictionary
= new LinkedList<KeyValuePair<TKey, TValue>>();
/// <summary>
/// 索引器,输入TKey可以找到对应的TValue
/// </summary>
/// <param name="tk">键值</param>
/// <returns></returns>
public TValue this[TKey tk] {
get
{
foreach(KeyValuePair<TKey, TValue> kvp in llDictionary)
{
if (tk.Equals(kvp.Key))
{
return kvp.Value;
}
}
return default(TValue);
}
}
/// <summary>
/// 添加一组数据
/// </summary>
/// <param name="tk"></param>
/// <param name="tv"></param>
public void Add(TKey tk, TValue tv)
{
foreach (KeyValuePair<TKey, TValue> kvp in llDictionary)
{
if (tk.Equals(kvp.Key))
{
throw new Exception("新增失败:主键已经存在");
}
}
llDictionary.AddLast(new KeyValuePair<TKey, TValue>(tk, tv));
}
/// <summary>
/// 删除一组数据
/// </summary>
/// <param name="tk"></param>
public void Delete(TKey tk)
{
foreach (KeyValuePair<TKey, TValue> kvp in llDictionary)
{
if (tk.Equals(kvp.Key))
{
llDictionary.Remove(kvp);
return;
}
}
throw new Exception("删除失败:不存在这个主键");
}
/// <summary>
/// 修改一组数据
/// </summary>
/// <param name="tk"></param>
/// <param name="tv"></param>
资源评论
weixin_38698539
- 粉丝: 7
- 资源: 948
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功