如何使用c#在Dictionary数组中查找下一个键值对

本文关键字:查找 下一个 键值对 数组 Dictionary 何使用 | 更新日期: 2023-09-27 18:28:48

我有一本像这样的字典

var secArray0 = new Dictionary<string, string>
{
    { "Name", "gomesh" },
    { "EmpCode", "ID04" },
    { "DeptId", "1C" },
    { "Age", "25" }
};
var secArray1 = new Dictionary<string, string>
{
    { "Name", "Sunny" },
    { "EmpCode", "ID05" },
    { "DeptId", "1D" },
    { "Age", "28" }
};

至secArray3。现在我把上面的所有内容都放进另一本像一样的字典里

Dictionary<string, string>[] secArray =
{
    secArray0,
    secArray1,
    ...
};

现在在c#代码中,当我需要通过索引访问任何元素时,比如

secArray[0]["Name"].toString() --> i can get the name "gomesh" and so on.

现在我的问题是如何在secArray字典中迭代以找到下一个值/名称,即"Sunny"。请提供一些代码。提前谢谢。

如何使用c#在Dictionary数组中查找下一个键值对

如果你想迭代,你可以做一个for循环:

for (var i = 0; i < secArray.Length; i++)
{
    Console.WriteLine(secArray[i]["Name"].ToString());
}

现在我的问题是如何迭代secArray字典

您可以使用foreach循环:

foreach (var item in secArray)
{
    Console.WriteLine(item["Name"]);
}

Dictionary<TKey, TValue>实现IEnumerable<KeyValuePair<TKey, TValue>>,因此它将是:

foreach (var kvp in secArray[0])
{
    Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}");
} 

secArray不是字典,它是一个字典数组。因此,您只需要移动索引即可获得下一个元素,如:

secArray[1]["Name"].ToString()

所以,你可以做:

for(int i = 0; i < secArray.Length; i++) 
{
    var something = secArray[i]["Name"].toString(); 
}