c# - 声明具有属性的类并同时填充这些属性的最佳方法是什么

标签 c# asp.net asp.net-mvc-3 class properties

以下是模型中代码的示例

public static class SomeClass
{
    // Description 
    public const string String1 = "String One"
    public const string String2 = "String Two";
    public const string String3 = " String Three";
    public const string String4 = " String Four";

    // Position
    public const int String1Position = 0;
    public const int String2Position = 1;
    public const int String3Position = 2;
    public const int String4Position = 3;

    // Filter Ranges
    public const int String2Minimum = 0100;
    public const int String2Maximum = 0199;

    public const int String3Minimum = 1000;
    public const int String3Maximum = 1099;

    public const int String4Unknown = 9999;

    private class SomeClassData
    {
        public string Description { get; set; }
        public int Position { get; set; }
        public int FilterMinimum { get; set; }
        public int FilterMaximum { get; set; }
    }
}

我希望能够为每个不同的描述、位置和过滤器范围填充此类的属性,其中描述、位置和过滤器都彼此相关。

SomeClassData.Description = "String Two";
SomeClassData.Position = 1;
SomeClassData.String2Minimum = 0100;
SomeClassData.String2Maximum = 0199;

在 Controller 中使用描述和位置,以便能够为 View 提供使用 Javascript/JQuery 填充下拉框的属性。 Controller 将使用过滤范围来接受下拉框中的位置值作为 ActionResult 的参数,以生成 linq 查询以从数据库取回数据。

我开始认为最好的方法是为每种不同类型填充一个列表,然后将每个列表一起使用,但尝试将这些列表正确链接在一起会变得困惑。 我有这种感觉我可能需要使用 Dictionary<string, object>Dictionary<int, object>其中对象是填充的 SomeClassData。不确定我现在是否已经偏离了这个想法。

最佳答案

是的,您可以使用Dictionary<string,SomeClassData>

var col = Dictionary<string, SomeClassData>
{
    { "Desc1", new SomeClassData{Position =1, String2Minimum =0100, String2Maximum = 0199}},
    { "Desc2", new SomeClassData{Position =1, String2Minimum =0100, String2Maximum = 0199}},
    ....
};

Select Linq operator

var fix = from entry in col 
          where entry.Key == "Desc1"
          select new entry.Value;

关于c# - 声明具有属性的类并同时填充这些属性的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13122877/

相关文章:

c# - 没有回发的事件

wcf - MVC2 路由与 WCF ServiceRoute : Html. ActionLink 呈现不正确的链接!

c# - 在 asp.net mvc3 中重构 Controller 的操作

c# - 在循环内部与外部定义变量

c# - 如何使用 .NET 从 gitlab hooks 获取推送信息

asp.net - 为什么 FormView 中的 CheckBox 不保留 OldValues 和 NewValues?

javascript - 回发后如何使用ddSlick将选择设置为选项?

c# - 如何修改查询数据表的ajax url?

c# - MongoDB如何检查是否存在

c# - Expression.Compile 与 Lambda 的性能,直接调用与虚拟调用