1

我不明白如何从我的 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)
4

1 回答 1

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 ..
<% } %>
于 2010-03-06T03:49:16.670 回答