我有一本詞典的字典,我似乎無法弄清楚如何在內部字典中做一個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