C# Can';t从C中的Dictionary属性获取值#

C# Can';t从C中的Dictionary属性获取值#,c#,dictionary,properties,C#,Dictionary,Properties,对于名为Role的类,我有以下代码 public static class Role { private static Dictionary<string, List<Permissions>> _userRole; private static List<Permissions> _userPermission; public static Dictionary<string, List<Permissions>&

对于名为Role的类,我有以下代码

public static class Role
{
    private static Dictionary<string, List<Permissions>> _userRole;
    private static List<Permissions> _userPermission;

    public static Dictionary<string, List<Permissions>> UserRoleInfo
    {
        get { return _userRole; }
    }

    public Role()
    {
        _userRole = new Dictionary<string, List<Permissions>>();
         _userPermission = new List<Permissions>();
    }}
你知道我的错误在哪里吗

if(Role.UserRoleInfo.ContainsKey(authenticatedUserName))

工作正常

您需要使用方括号访问字典的成员:

List<Permissions> value = Role.UserRoleInfo[authenticatedUserName];
List value=Role.UserRoleInfo[authenticatedUserName];
  • 在C#中获取字典值的正确语法是

  • 从实例构造函数初始化静态成员是个坏主意。您可能希望构造函数也是静态的。(或使字段和属性非静态-以对您的使用更有意义的为准)


  • @ElRami一定要看一看,它涵盖了另一个重要的方面。谢谢我确实改变了它谢谢你的额外建议我确实改变了它
    if(Role.UserRoleInfo.ContainsKey(authenticatedUserName))
    
    List<Permissions> value = Role.UserRoleInfo[authenticatedUserName];
    
    Role.UserRoleInfo[authenticatedUserName]