一、定义一个字典:
// 定义一个存储字符串键和整数值的字典
Dictionary<string, int> numbers = new Dictionary<string, int>();
二、添加元素:
// 添加键值对
numbers.Add("One", 1);
numbers.Add("Two", 2);
三、通过键查找值:
// 获取键为"One"的值
int value;
if (numbers.TryGetValue("One", out value))
{
Console.WriteLine($"The value for 'One' is {value}");
}
四、检查键是否存在:
// 获取键为"One"的值
int value;
if (numbers.TryGetValue("One", out value))
{
Console.WriteLine($"The value for 'One' is {value}");
}
五、获取值:
// 直接通过键获取值(如果键不存在则抛出异常)
int oneValue = numbers["One"];
六、修改或更新值:
// 如果键已存在,则更新其对应的值
if (numbers.ContainsKey("One"))
{
numbers["One"] = 10; // 更新 "One" 的值为 10
}
七、删除元素:
// 删除指定键的元素
if (numbers.ContainsKey("One"))
{
numbers.Remove("One");
}
八、遍历字典:
// 遍历所有键值对
foreach (var pair in numbers)
{
Console.WriteLine($"Key: {pair.Key}, Value: {pair.Value}");
}
九、C# 8.0 及以上版本还引入了 foreach
循环简写语法
foreach (var (key, value) in numbers)
{
Console.WriteLine($"Key: {key}, Value: {value}");
}
例子2
这个类NumberContainer02
定义了一个字典 _numbers
,其中键值对用于存储各种宗地信息的描述。
public NumberContainer02()
{
// 在这里初始化字典
_numbers = new Dictionary<string, string>
{
//宗地信息
{ "QHDM", "子区代码" },
{ "YBDJH", "预编号" },
{ "SOUTH", "宗地编号,权利人,实际用途 " },
{ "L_ZDBM", "宗地编号" },
{ "L_QLR", "权利人" },
{ "L_SJYT", "实际用途" },
{ "PZTDYT", "批准用途" }
};
}
// 提供索引器以进行读操作(由于键是字符串,不建议提供写操作)
public string this[string key]
{
get => _numbers.TryGetValue(key, out string value) ? value : null;
}
// 提供获取字符串的方法(可选,基于键查找值)
public string GetDescription(string number)
{
return _numbers.TryGetValue(number, out string description) ? description : null;
}
public string GetKeyByDescription(string description)
{
foreach (var pair in _numbers)
{
if (pair.Value == description)
return pair.Key;
}
return null; // 如果没有找到匹配项,则返回 null 或者一个默认值
}
public List<string> GetAllKeys()//返回字典所有键值
{
return _numbers.Keys.ToList();
}
public List<string> GetAllValues()//返回字典所有值
{
return _numbers.Values.ToList();
}
获取键值对值的方法
NumberContainer02 numberContainer02 = new NumberContainer02();
string fwjg = numberContainer02.GetDescription("QHDM");// 这将返回 "子区代码"
string key = numberContainer02.GetKeyByDescription("子区代码"); // 这将返回 "QHDM"
List<string> allKeys = numberContainer03.GetAllKeys();//返回所有key列表
List<string> allValues = numberContainer03.GetAllValues();//返回所有value列表
//返回所有key列表
foreach (string key in allKeys)
{
Console.WriteLine(key);
}
//返回所有value列表
foreach (string value in allValues)
{
Console.WriteLine(value);
}
同时列出 键组
public List<(string Key, string Value)> GetAllKeyValues()
{
return _numbers.Select(pair => (pair.Key, pair.Value)).ToList();
}
NumberContainer02 numberContainer02 = new NumberContainer02();//同时列出 键组
List<(string Key, string Value)> keyValuePairs = numberContainer03.GetAllKeyValues();
foreach ((string key, string value) in keyValuePairs)
{
Console.WriteLine($"Key: {key}, Value: {value}");
}
//感谢大家的点赞,收藏,转发,关注