在 C# 中检查字典键是否存在
Dictionary
倾向于映射键和值。它包含特定值映射到的特定键。不允许有重复的键,这是字典
的全部目标。
今天我们将研究如何检查一个键是否已经存在于一个字典
中。
在 C#
中使用 try-catch
检查是否存在字典键
让我们首先创建一个名为 students
的字典,将每个特定的学生 ID 映射到 CGPA:
Dictionary<int, double> students = new Dictionary<int, double>();
students[101] = 3.22;
students[102] = 3.44;
students[103] = 2.98;
因为 CGPA 应该是双精度格式,所以我们将 ID 和 CGPA 分别定义为 <TKEY, TVALUE>
为 <int, double>
。
假设我们想在 students
中查找学生 102
是否存在条目。确实如此,但我们需要一个代码来直接告诉我们。
为此,我们可以使用 try-catch
异常,如下所示:
try {
Console.WriteLine(students[102].ToString());
} catch (Exception e) {
Console.WriteLine("No such key present");
}
输出:
3.44
但是如果我们现在尝试对学生 104
做同样的事情,会发生以下情况:
输出:
No such key present
为什么?好吧,ToString()
方法仅适用于非空值。因为学生 104
为 null 并且在 students
中没有条目,所以会发生异常。
而不是抛出异常,我们倾向于捕获它并在控制台中显示消息 No such key present
。
因此,这是检查密钥是否存在的有效方法。但是我们可以让它更简单吗?
在 C#
中使用 ContainsKey()
检查是否存在字典键
观察以下代码:
if (!students.ContainsKey(104)) {
Console.WriteLine("No such key present");
}
这将出现错误,因为不存在这样的键。
输出:
No such key present
在 C#
中使用 TryGetValue()
检查是否存在字典键
如果我们执行以下操作:
double getval = 0.0;
if (!students.TryGetValue(104, out getval)) {
Console.WriteLine("No such key present");
}
这往往会返回如下输出:
No such key present
TryGetValue()
倾向于获取键的值(如果存在)。该值在第二个参数中获得。
因此,它使用 out
关键字发送。获取该值的变量在作用域之前声明,即 getval
。
所有这些不同方法的完整代码已包含在下面:
using System;
using System.Collections.Generic;
using System.Text;
namespace jinlku_console {
class coder {
static void Main(String[] args) {
Dictionary<int, double> students = new Dictionary<int, double>();
students[101] = 3.22;
students[102] = 3.44;
students[103] = 2.98;
// TRY CATCH BLOCK
try {
Console.WriteLine(students[104].ToString());
} catch (Exception e) {
Console.WriteLine("No such key present");
}
// CONTAINS KEY METHOD
if (!students.ContainsKey(104)) {
Console.WriteLine("No such key present");
}
// TRYGETVALUE
double getval = 0.0;
if (!students.TryGetValue(104, out getval)) {
Console.WriteLine("No such key present");
}
}
}
}
相关文章
在 C# 中按值对字典排序
发布时间:2024/01/19 浏览次数:153 分类:编程语言
-
有两种主要方法可用于按 C# 中的值对字典进行排序:list 方法和 Linq 方法。使用 C# 中的 List 方法按值对字典进行排序。C# 字典数据结构以 key:value 对的形式存储数据。
在 C# 中更新字典值
发布时间:2024/01/19 浏览次数:72 分类:编程语言
-
本教程演示如何使用键作为索引来更新 C# 字典中的值。dictionary 是一种集合类型,与只能通过索引或值本身访问值的数组或列表不同,字典使用键和值对来存储其数据。
在 C# 中将字符串转换为字符
发布时间:2024/01/19 浏览次数:85 分类:编程语言
-
有四种主要方法可以在 C# 中将字符串转换为字符,即 char.Parse()、string[index]、string.ToCharArray()和 LINQ 方法。
在 C# 中将 IEnumerable 转换为列表
发布时间:2024/01/18 浏览次数:138 分类:编程语言
-
在本教程中,学习在 C# 中将 IEnumerable 转换为列表的不同方法。使用 ToList()、ToArray() 和 AsEnumerable() 方法。
如何在 C# 中将枚举转换为列表
发布时间:2024/01/18 浏览次数:142 分类:编程语言
-
本文介绍如何在 C# 中将枚举数转换为列表。它包括 ToList()方法。在 C# 中使用 ToList() 方法将枚举类型转换为列表
C# 获取当前文件夹路径
发布时间:2024/01/18 浏览次数:172 分类:编程语言
-
本文方法介绍了在 C# 中获取当前文件夹路径的不同方法。它介绍了诸如 GetCurrentDirectory(),GetDirectoryName()和 Environment.CurrentDirectory 之类的方法。
如何在 C# 中创建文件夹
发布时间:2024/01/18 浏览次数:61 分类:编程语言
-
本文介绍了如何在 C# 中创建一个不存在的新文件夹。它包括 CreateDirectory()方法。使用 CreateDirectory() 方法在 C# 中创建一个文件夹
C# 中的倒数计时器
发布时间:2024/01/18 浏览次数:102 分类:编程语言
-
Timer 类可用于在 C# 中创建倒数计时器。使用 C# 中的 Timer 类倒数计时器 Timer 类用于在 C# 中的单独线程内执行函数。