C# 使用foreach枚举内部字典

C# 使用foreach枚举内部字典,c#,dictionary,C#,Dictionary,我有一本字典,但我似乎不知道如何在内部字典中进行foreach循环 var users = myDic.Select(kvp => kvp.Value).SelectMany(dic => dic.Values); foreach(User user in users) { ... } 我的收藏: Dictionary<int, Dictionary<int, User>> foreach(myDic中的KeyValuePair用户){ foreac

我有一本字典,但我似乎不知道如何在内部字典中进行foreach循环

var users = myDic.Select(kvp => kvp.Value).SelectMany(dic => dic.Values);
foreach(User user in users)
{
   ...
}
我的收藏:

Dictionary<int, Dictionary<int, User>>
foreach(myDic中的KeyValuePair用户){
foreach(users.Value中的KeyValuePair用户){
...
}
}
//给定:字典myDic
foreach(myDic中的KeyValuePair kvp){
foreach(kvp.Value中的键值对kvpUser){
用户u=kvpUser.Value;
}
}
嵌套的foreach

foreach (var keyValue in myDic){
   foreach (var user in keyValue.Value){
     ....
   }
}
或是一点灵气

        foreach (User User in myDic.SelectMany(i => i.Value).Select(kv=>kv.Value))
        {

        }  
按用户名排序

        foreach (User User in myDic.SelectMany(i => i.Value)
                                   .Select(kv=>kv.Value)
                                   .OrderBy(u=>u.UserName))
        {

        }  

你在找这个吗

    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
        }
var myDic=newdictionary();
foreach(myDic中的var项目)
foreach(item.Value中的var子项)
{
展示(
subItem.Key,//int
subItem.Value);//用户
}

是你问题的字面答案;尽管我通常建议使用
TryGet
方法,除非你确定
someKey
在你的字典的Keys集合中。

但是你到底想做什么呢?循环遍历所有字典中的所有元素?myDic[someKey]已返回Dictionary类型的值。我想你应该去掉“[someKey]”。使用myDic[someKey]。值可能会更干净。对我的User.Username进行排序如何?选择多个项目将序列中的每个元素转换为一个IEnumerable,并将结果序列展平为一个序列。然后我们从每个keyValuePair(恰好是用户)中选择值
var users = myDic.Select(kvp => kvp.Value).SelectMany(dic => dic.Values);
foreach(User user in users)
{
   ...
}
    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
        }
foreach(User user in myDic[someKey].Values)
var users = myDic.Select(kvp => kvp.Value).SelectMany(dic => dic.Values);
foreach(User user in users)
{
   ...
}