字典<string,list <string =“”>&gt;迭代ASP.NET2.0

时间:2016-01-05 15:08:44

标签: c#

我有Dictionary<string, List<string>>,我过去常常使用

返回值
List<string> keyDicoList = DictErrorCorrectionBeforeJS.Keys.ToList();
List<string> listValue = DictErrorCorrectionBeforeJS.SelectMany(x => x.Value).ToList();

但是当我们开发4.0时,它似乎在使用ASP.NET 2.0生产... 所以我尝试用另一种方式恢复它们。我找到了钥匙:

foreach (string key in DictErrorCorrection.Keys)
{
    keyDicoList.Add(key);
}

但我无法获得价值。因为它不是一个简单的值,而是Dictionnary中的List。我不能对它做一个foreach,看起来它是一个枚举器,我只能去for循环,只需将Dico.Values [x]添加到我的listValue

我应该如何继续获取listValue中的所有dictionary.value?

2 个答案:

答案 0 :(得分:1)

您可以使用foreach迭代它们。字典枚举器产生KeyValuePair<string, List<string>>

foreach (KeyValuePair<string, List<string>> kvp in dictionary)
{
    string key = kvp.Key;
    List<string> list = kvp.Value;

    foreach (string listItem in list)
    {
        // .. use the item, or skip the foreach and use the list at once
    }
}

答案 1 :(得分:1)

通常,您枚举字典的KVP集:

List<string> values = new List<string>();

foreach (KeyValuePair<string, List<string>> kvp in dict)
{
    values.AddRange(kvp.Value); // kvp.Value is List<string>
}