我有一本词典的字典,我似乎无法弄清楚如何在内部字典中做一个foreach循环。使用foreach枚举内部字典
我的收藏:
Dictionary<int, Dictionary<int, User>>
到目前为止,我有:
foreach(User user in myDic[someKey]??)
我有一本词典的字典,我似乎无法弄清楚如何在内部字典中做一个foreach循环。使用foreach枚举内部字典
我的收藏:
Dictionary<int, Dictionary<int, User>>
到目前为止,我有:
foreach(User user in myDic[someKey]??)
嵌套的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))
{
}
通过用户名
foreach (User User in myDic.SelectMany(i => i.Value)
.Select(kv=>kv.Value)
.OrderBy(u=>u.UserName))
{
}
如何订购我的User.Username的胜利? – mrblah 2009-10-29 13:25:58
+1很好。 – AnthonyWJones 2009-10-29 13:37:57
太棒了!为什么.selectmany然后选择? – mrblah 2009-10-29 14:53:03
foreach (KeyValuePair<int, Dictionary<int, User>> users in myDic) {
foreach (KeyValuePair<int, User> user in users.Value) {
...
}
}
myDic [someKey]已经返回类型字典
使用myDic [someKey]。值可能会更干净。 – Brian 2009-10-29 13:23:55
//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;
}
}
您是否在寻找这个命令?
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)
是字面回答你的问题;尽管我通常会推荐使用TryGet
方法,除非您是某些someKey
位于字典的Keys集合中。
var users = myDic.Select(kvp => kvp.Value).SelectMany(dic => dic.Values);
foreach(User user in users)
{
...
}
但是你到底想做什么?遍历所有字典中的所有元素? – Gacek 2009-10-29 13:19:58