## C# 字典获取值:从简单到高级### 简介C# 字典(Dictionary)是一种非常有用的数据结构,它允许你使用键来存储和检索值。字典可以高效地存储数据,并且通过键可以快速访问所需的值。本文将详细介绍 C# 中字典获取值的不同方法,并提供一些示例代码。### 1. 使用索引器获取值最简单的方法是使用键作为索引器来获取值。```csharp
Dictionary ages = new Dictionary();
ages.Add("John", 25);
ages.Add("Jane", 30);int johnsAge = ages["John"]; // 获取 John 的年龄
Console.WriteLine(johnsAge); // 输出:25
```### 2. 使用 TryGetValue 获取值当你不确定键是否存在于字典中时,使用 `TryGetValue` 方法是一个更安全的选择。它尝试获取值,并返回一个布尔值表示是否成功。```csharp
Dictionary ages = new Dictionary();
ages.Add("John", 25);int age;
bool success = ages.TryGetValue("John", out age);if (success)
{Console.WriteLine("John's age is: " + age); // 输出:John's age is: 25
}
else
{Console.WriteLine("Key not found.");
}
```### 3. 使用 LINQ 获取值你可以使用 LINQ 查询字典并根据条件获取值。```csharp
Dictionary ages = new Dictionary();
ages.Add("John", 25);
ages.Add("Jane", 30);
ages.Add("Peter", 28);var youngPeople = ages.Where(x => x.Value < 30).Select(x => x.Key);foreach (var name in youngPeople)
{Console.WriteLine(name); // 输出:John, Peter
}
```### 4. 获取默认值如果键不存在,你可以使用 `ContainsKey` 方法判断并提供默认值。```csharp
Dictionary ages = new Dictionary();
ages.Add("John", 25);int age = ages.ContainsKey("Jane") ? ages["Jane"] : 0;
Console.WriteLine(age); // 输出:0
```### 5. 异常处理如果尝试获取不存在的键的值,将会引发 `KeyNotFoundException` 异常。为了避免程序崩溃,建议使用 `TryGetValue` 或 `ContainsKey` 方法并进行异常处理。```csharp
Dictionary ages = new Dictionary();
ages.Add("John", 25);try
{int age = ages["Jane"]; // 尝试获取不存在的键的值
}
catch (KeyNotFoundException ex)
{Console.WriteLine("Key not found.");
}
```### 总结本文介绍了 C# 字典获取值的不同方法,包括使用索引器、`TryGetValue`、LINQ、默认值以及异常处理。建议根据具体情况选择最合适的获取方法。
C
字典获取值:从简单到高级
简介C
字典(Dictionary)是一种非常有用的数据结构,它允许你使用键来存储和检索值。字典可以高效地存储数据,并且通过键可以快速访问所需的值。本文将详细介绍 C
中字典获取值的不同方法,并提供一些示例代码。
1. 使用索引器获取值最简单的方法是使用键作为索引器来获取值。```csharp
Dictionary ages = new Dictionary();
ages.Add("John", 25);
ages.Add("Jane", 30);int johnsAge = ages["John"]; // 获取 John 的年龄
Console.WriteLine(johnsAge); // 输出:25
```
2. 使用 TryGetValue 获取值当你不确定键是否存在于字典中时,使用 `TryGetValue` 方法是一个更安全的选择。它尝试获取值,并返回一个布尔值表示是否成功。```csharp
Dictionary ages = new Dictionary();
ages.Add("John", 25);int age;
bool success = ages.TryGetValue("John", out age);if (success)
{Console.WriteLine("John's age is: " + age); // 输出:John's age is: 25
}
else
{Console.WriteLine("Key not found.");
}
```
3. 使用 LINQ 获取值你可以使用 LINQ 查询字典并根据条件获取值。```csharp
Dictionary ages = new Dictionary();
ages.Add("John", 25);
ages.Add("Jane", 30);
ages.Add("Peter", 28);var youngPeople = ages.Where(x => x.Value < 30).Select(x => x.Key);foreach (var name in youngPeople)
{Console.WriteLine(name); // 输出:John, Peter
}
```
4. 获取默认值如果键不存在,你可以使用 `ContainsKey` 方法判断并提供默认值。```csharp
Dictionary ages = new Dictionary();
ages.Add("John", 25);int age = ages.ContainsKey("Jane") ? ages["Jane"] : 0;
Console.WriteLine(age); // 输出:0
```
5. 异常处理如果尝试获取不存在的键的值,将会引发 `KeyNotFoundException` 异常。为了避免程序崩溃,建议使用 `TryGetValue` 或 `ContainsKey` 方法并进行异常处理。```csharp
Dictionary ages = new Dictionary();
ages.Add("John", 25);try
{int age = ages["Jane"]; // 尝试获取不存在的键的值
}
catch (KeyNotFoundException ex)
{Console.WriteLine("Key not found.");
}
```
总结本文介绍了 C
字典获取值的不同方法,包括使用索引器、`TryGetValue`、LINQ、默认值以及异常处理。建议根据具体情况选择最合适的获取方法。