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

时间:2016-01-04 08:07:29

标签: c# dictionary

我有一个像

这样的词典
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字典以查找下一个值/名称,即&#34; Sunny&#34;。 请告知一些代码。提前致谢。

4 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

  

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

您可以使用foreach循环:

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

答案 2 :(得分:0)

Dictionary<TKey, TValue>实现了IEnumerable<KeyValuePair<TKey, TValue>>,所以它将是:

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

答案 3 :(得分:0)

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

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

所以,你可以这样做:

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