c#获取Dictionary索引
时间: 2023-07-27 11:15:02 浏览: 81
在 C# 中,可以使用 Dictionary 的 Keys 属性获取其所有键的集合,然后使用 Linq 的 IndexOf 方法获取特定键的索引。以下是示例代码:
```csharp
Dictionary<string, int> dict = new Dictionary<string, int>();
dict.Add("apple", 1);
dict.Add("banana", 2);
dict.Add("orange", 3);
string keyToFind = "banana";
int index = dict.Keys.ToList().IndexOf(keyToFind);
if (index != -1)
{
Console.WriteLine($"The index of '{keyToFind}' is {index}");
}
else
{
Console.WriteLine($"'{keyToFind}' does not exist in the dictionary");
}
```
输出:
```
The index of 'banana' is 1
```
相关问题
C# dictionary 获取索引C# dictionary 获取索引
在C#中,Dictionary是一种哈希表数据结构,它用于存储键值对,其中每个键都是唯一的。如果你想获取某个键对应的索引,因为Dictionary本身并不提供直接按索引访问的功能,它更侧重于通过键(Key)来进行查找。
如果你有一个已经填充了元素的Dictionary并想找到特定键的位置,你需要遍历整个集合来查找。你可以使用`foreach`循环或者`KeyValuePair<TKey, TValue>[]`数组来查找。示例如下:
```csharp
Dictionary<string, int> dict = new Dictionary<string, int>();
// 假设已经添加了一些键值对
int index = -1; // 初始化为未找到,默认值
if (dict.TryGetValue("your_key", out int value)) // TryGetValue返回键是否存在并且赋值给value
{
index = dict.IndexOfKey("your_key"); // 如果键存在,IndexOfKey会返回键的位置,但请注意这并不是真正的索引
}
else
{
Console.WriteLine($"Key '{"your_key"}' not found.");
}
if (index != -1)
{
Console.WriteLine($"The key is at index: {index}");
}
```
C# 获取Dictionary当前下标
在 C# 中,Dictionary 是一个无序键值对的集合。它没有索引,但可以通过键来获取对应的值。如果您要获取 Dictionary 中某个键的下标,可以使用以下代码:
```csharp
Dictionary<string, int> dict = new Dictionary<string, int>();
dict.Add("a", 1);
dict.Add("b", 2);
dict.Add("c", 3);
string key = "b";
int index = -1;
for (int i = 0; i < dict.Keys.Count; i++)
{
if (dict.Keys.ElementAt(i) == key)
{
index = i;
break;
}
}
if (index != -1)
{
Console.WriteLine($"Key '{key}' has index {index}");
}
else
{
Console.WriteLine($"Key '{key}' not found");
}
```
在上面的示例中,我们创建了一个包含三个键值对的 Dictionary,然后定义了一个变量 key 来存储要查找的键。接着,我们使用一个循环遍历 Dictionary 中所有的键,如果找到了与 key 相等的键,就将其下标记录下来,并使用 break 退出循环。最后,根据 index 的值来判断是否找到了对应的下标。请注意,上面的代码只能用于查找键不重复的情况。如果 Dictionary 中有重复的键,那么上面的代码只能找到第一个匹配的键的下标。
阅读全文