首先在讲自定义字典之前,先给大家简单的介绍一下C#中的字典(Dictionary);
数据结构:
以键值对Dictionary<[key], [value]>形式存值,和哈希表很像也是一种无序的结构。
要使用Dictionary,需要先导入C#泛型命名空间System.Collections.Generic;在使用前,你必须声明它的键类型和值类型。例如Dictionary<int, string>;
注意事项:
Dictionary字典中的key是唯一的,不能添加相同的key值;
Dictionary字典的使用:
// 声明和初始化
Dictionary<int, string> myDictionary = new Dictionary<int, string>();
// 添加元素
myDictionary.Add(key,value);
// 判断是否包含键
if(myDictionary.ContainsKey(key))
// 总个数
myDictionary.Count
// 遍历字典
foreach (KeyValuePair<int, string> item in myDictionary)
{
Console.WriteLine(item.Key + "\t" + item.Value);
}
// 移除指定键和值
myDictionary.Remove(key);
// 如果添加的键存在就重新指定当前键的Value值,不存在就添加
if (myDictionary.ContainsKey(key)== true)
{
// 通过key设置value
myDictionary[key] = "value";
}
else
{
myDictionary.add(key,"value")
}
// 获取指定键对应的值
string resValue;
myDictionary.TryGetValue(key, out resValue);
为什么要用到自定义字典呢?在我之前做的一个功能,就是用来存放一个树形结构的数据,就想到了字典,但常用的字典又不满足所需要做的功能,就用到了自定义的一个字典。
下面是自定义字典的数据结构图
声明自定义字典:
Dictionary<string, FileDic> m_dicFile;
自定义类:
public class FileDic
{
private List<FileDic> m_list;
private string m_title;
public FileDic()
{
m_list = new List<FileDic>();
}
//封装一些方法
//添加、获取数据
public string getTitle()
{
return m_title;
}
public void setTitle(string m_title)
{
this.m_title=m_title;
}
public List<FileDic> getList()
{
return m_list;
}
public void setList(FileDic fd)
{
m_list.Add(fd);
}
}
效果图: