我有一本字典词典,我似乎无法弄清楚如何在内部字典中进行foreach循环。
我的收藏:
Dictionary<int, Dictionary<int, User>>
到目前为止,我有:
foreach(User user in myDic[someKey]??)
答案 0 :(得分:6)
嵌套的foreach
foreach (var keyValue in myDic){
foreach (var user in keyValue.Value){
....
}
}
或一点linq
foreach (User User in myDic.SelectMany(i => i.Value).Select(kv=>kv.Value))
{
}
按UserName排序
foreach (User User in myDic.SelectMany(i => i.Value)
.Select(kv=>kv.Value)
.OrderBy(u=>u.UserName))
{
}
答案 1 :(得分:4)
foreach (KeyValuePair<int, Dictionary<int, User>> users in myDic) {
foreach (KeyValuePair<int, User> user in users.Value) {
...
}
}
答案 2 :(得分:2)
foreach(User user in myDic[someKey].Values)
是你问题的字面答案;虽然我通常建议使用TryGet
方法,除非你某些 someKey
在你的词典的Keys集合中。
答案 3 :(得分:1)
你在找这个吗?
var myDic = new Dictionary<int, Dictionary<int, string>>();
foreach(var item in myDic)
foreach (var subItem in item.Value)
{
Display(
subItem.Key, // int
subItem.Value); // User
}
答案 4 :(得分:0)
//given: Dictionary<int, Dictionary<int, User>> myDic
foreach(KeyValuePair<int, Dictionary<int, User>> kvp in myDic) {
foreach(KeyValuePair<int, User> kvpUser in kvp.Value) {
User u = kvpUser.Value;
}
}
答案 5 :(得分:0)
var users = myDic.Select(kvp => kvp.Value).SelectMany(dic => dic.Values);
foreach(User user in users)
{
...
}