我需要从上面的嵌套字典中获取字符串值。怎么做。 我有从数据表[3列]到字典的密钥对值,如此
management = dt.AsEnumerable()
.GroupBy(m => m.Field<int>("ID"))
.ToDictionary(
a => a.Key,
a => a.GroupBy(c => c.Field<string>("Name"))
.ToDictionary(
d => d.Key,
d => d.First().Field<int>("Parent")));
string temp = management ???
编辑:让我详细说明一下。
我有一个像这样的管理表
ID Name Parent
1 Manager 0
2 Accountant 0
3 Assistant Manager 1
4 Branch Manager 1
5 Employee1 3
6 Employee3 3
7 Employee2 4
8 Accountant1 2
9 Accountant2 2
父代表我的asp页面中的树视图结构
*Manager-->Assistant manager-->Employee1
| |->Employee3
|
|-->Branch Manager---->Employee2
*Accountant-->Accountant1
|->Accountant2
我只需要使用字典来显示我的数据表到树视图 所以我做了上面的代码将数据表绑定到字典。 现在尝试将字典绑定到treeview 这是明确的配偶吗? PS:我是asp的新手
答案 0 :(得分:0)
您可以像这样找到嵌套字典值
var dt1 = new Dictionary<string, int> { { "Test1", 1 }, { "Test2", 1 }, { "Test3", 1 } };
var dt2 = new Dictionary<string, int> { { "Test11", 101 }, { "Test22", 201 }, { "Test33", 301 } };
var dt3 = new Dictionary<int, Dictionary<string, int>> { { 11, dt1 }, { 22, dt2 } };
foreach (var kvp in dt3)
{
var innerDict = kvp.Value;
foreach (var innerKvp in innerDict)
{
Console.WriteLine(kvp.Key);
Console.WriteLine(innerKvp.Key);
Console.WriteLine(innerKvp.Value);
}
}
答案 1 :(得分:0)
您可以获得如下所示的Name
列表:
var namesList = management.SelectMany(x => x.Value.Select(y => y.Key));
现在只需在上面的列表中调用First()
即可获得名字。
string temp = namesList.First();