c#dictionary通过key找value
时间: 2023-04-26 19:01:34 浏览: 2097
C# 中的 Dictionary 类有一个 TryGetValue 方法,可以通过 key 来查找 value。该方法接收两个参数,一个是 key,另一个是输出参数,用来保存找到的 value。如果找到了 value,TryGetValue 方法会返回 true,反之会返回 false。
示例:
```
Dictionary<string, int> dict = new Dictionary<string, int>();
dict.Add("apple", 1);
dict.Add("banana", 2);
int value;
if (dict.TryGetValue("apple", out value))
{
Console.WriteLine(value); // 输出: 1
}
```
也可以用下标来访问,如果key不存在会抛出异常
```
Console.WriteLine(dict["apple"]);
```
相关问题
C# Dictionary 通过key或者value 得到下标
在C#中,`Dictionary<TKey, TValue>`是一个关联容器,它将键(Key)映射到值(Value)。如果你想要获取某个键对应的索引,你可以直接使用`TryGetValue`方法或者`IndexOfKey`方法,但是这两个方法都不会返回值的索引,因为`Dictionary`内部并不保证值的顺序。
如果你需要得到值的索引,你需要先确保该值存在于字典中,可以这样做:
```csharp
int index;
if (dictionary.TryGetValue(key, out TValue value)) {
index = dictionary.IndexOfKey(key); // 如果key存在,index会包含其在键集合中的位置
} else {
index = -1; // 或者抛出异常,表示找不到指定的key
}
```
如果你想找到与给定值相关的第一个键的索引,可以使用`Keys.FindIndex`方法:
```csharp
int index = dictionary.Keys.IndexOf(value);
```
这假设`value`是唯一的,如果存在多个相同的值,它将返回第一个匹配项的索引。
C# dictionary 通过value查找key值
在 C# 中,Dictionary 类提供了通过值查找键的方法。你可以使用 LINQ 查询语法或循环遍历字典来实现这个功能。以下是两种方法的示例:
1. 使用 LINQ 查询语法:
```csharp
var dictionary = new Dictionary<string, int>
{
{ "apple", 1 },
{ "banana", 2 },
{ "orange", 3 }
};
int targetValue = 2;
string key = dictionary.FirstOrDefault(x => x.Value == targetValue).Key;
if (key != null)
{
Console.WriteLine($"Key with value {targetValue} is: {key}");
}
else
{
Console.WriteLine("Key not found for the given value.");
}
```
2. 使用循环遍历字典:
```csharp
var dictionary = new Dictionary<string, int>
{
{ "apple", 1 },
{ "banana", 2 },
{ "orange", 3 }
};
int targetValue = 2;
string key = null;
foreach (var kvp in dictionary)
{
if (kvp.Value == targetValue)
{
key = kvp.Key;
break;
}
}
if (key != null)
{
Console.WriteLine($"Key with value {targetValue} is: {key}");
}
else
{
Console.WriteLine("Key not found for the given value.");
}
```
这些代码示例将在给定一个目标值时,通过值查找字典中对应的键。请注意,如果字典中存在多个具有相同值的键,这些方法将返回第一个匹配的键。
阅读全文