集合列表和字典

use*_*733 0 c# collections dictionary list

我有一个包含roleid的列表和一个包含该roleid可访问的roleids和菜单数据库的字典.

假设用户有角色,1,2,3那么如何检索他可以从字典中访问的不同菜单?

List<int> roleids = new List<int>();

roleids.Add(1);
roleids.Add(2);
roleids.Add(3);

Dictionary<int, List<String>> Links = new Dictionary<int, List<string>>
{
    { 1, new List<String> { "Home", "About Us", "Logout", "Help" } },
    { 2, new List<String> { "Home", "Products", "Logout", "Help" } },
    { 3, new List<String> { "Home", "Customers", "Users", "Help" } }
};
Run Code Online (Sandbox Code Playgroud)

我想创建一个新列表,其中包含基于List roleids中的值可供用户访问的菜单

Dav*_*ish 7

如果您在roleids列表中进行初始选择- 您可以利用字典的快速查找性质

var menuItems = roleids
    .Select(id => Links[id])
    .SelectMany(roles => roles)
    .Distinct();
Run Code Online (Sandbox Code Playgroud)