在asp.net </int,>中使用Dictionary <int,dictionary <string,int =“”>

时间:2014-03-22 04:31:07

标签: c# asp.net dictionary

我需要从上面的嵌套字典中获取字符串值。怎么做。 我有从数据表[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的新手

2 个答案:

答案 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();