如何从asp.net(aspx)页面枚举静态类中包含的静态字典

时间:2010-03-06 03:45:01

标签: c# dictionary static enumeration idictionary

我不明白如何从我的aspx页面循环静态类中包含的静态字典。我有这个用于静态类

public static class ErrorCode  

{
    public static IDictionary<int, string> ErrorCodeDic;

    static ErrorCode()
    {
        ErrorCodeDic = new Dictionary<int, string>()
        { 
            {1, "a problem"},
            {2, "b problem"}
        };
    }
}

更具体 我可以通过在aspx部分中将其拼写出来来实现它的工作

foreach( System.Collections.generic.KeyValuePair<int, string> kvp in MyLibrary.Dictionaries.ErrorCode.ErrorCodeDic) 

但我认为我可以通过在代码后面声明变量来缩写它吗?

Public KeyValuePair<int, string> error;
Public ErrorCode.ErrorCodeDic ErrorCodes; OR
Public ErrorCode.ErrorCodeDic ErrorCodes = ErrorCode.ErrorCodeDic; "

我遇到构建错误“类型名称'ErrorCodeDic'在ErrorCode类型中不存在。

然后在aspx页面中使用

foreach( error in ErrorCodes)

1 个答案:

答案 0 :(得分:3)

你可以像这样遍历所有对:

foreach( KeyValuePair<int, string> kvp in ErrorCode.ErrorCodeDic)
{
  Response.Write(string.Format("Key = {0}, Value = {1}", kvp.Key, kvp.Value));
}

对于您的更新案例,在代码隐藏中:

public IDictionary<int, string> ErrorCodes = MyLibrary.Dictionaries.ErrorCode.ErrorCodeDic;

在aspx中:

foreach(var error in ErrorCodes) { }

或者,代码隐藏中没有任何东西,这在aspx中:

<%@ Import Namespace="MyLibrary.Dictionaries" %>
....Content...
<% foreach(var error in ErrorCode.ErrorCodeDic) { %>
  .. something ..
<% } %>