在C#中想要使用Map时,发现没有Map,但是有替代方案,就是使用Dictionary。
Dictionary< string , string > hashMap = new Dictionary< string , string >();
说明:
1、必须包含名空间System.Collection.Generic
2、Dictionary里面的每一个元素都是一个键值对(由二个元素组成:键和值)
3、键必须是唯一的.而值不需要唯一的
4、键和值都可以是任何类型(比如: string, int,自定义类型,等等)
5、通过一个键读取一个值的时间是接近O(1)
6、键值对之间的偏序可以不定义
C#代码
//创建及初始化
Dictionary<int,string> myDictionary = new Dictionary<int,string>();
//添加元素
myDictionary.Add(1,"C#");
myDictionary.Add(2,"C++");
myDictionary.Add(3,"ASP.NET");
myDictionary.Add(4,"MVC");
//通过Key查找元素
if(myDictionary.ContainsKey(1))
{
Console.WriteLine("Key:{0},Value:{1}","1", myDictionary[1]);
}
//通过KeyValuePair遍历元素
foreach(KeyValuePair<int,string>kvp in myDictionary)
{
Console.WriteLine("Key = {0}, Value = {1}",kvp.Key, kvp.Value);
}
//仅遍历键 Keys 属性
Dictionary<int,string>.KeyCollection keyCol=myDictionary.Keys;
foreach(intkeyinkeyCol)
{
Console.WriteLine("Key = {0}", key);
}
//仅遍历值 Valus属性
Dictionary<int,string>.ValueCollection valueCol=myDictionary.Values;
foreach(stringvalueinvalueCol)
{
Console.WriteLine("Value = {0}", value);
}
//通过Remove方法移除指定的键值
myDictionary.Remove(1);
if(myDictionary.ContainsKey(1))
{
Console.WriteLine("Key:{0},Value:{1}","1", myDictionary[1]);
}
else
{
Console.WriteLine("不存在 Key : 1");
}