我有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?
答案 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>
}