2

以下是模型中代码的示例

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;

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

我开始认为最好的方法是为每种不同类型填充一个列表,然后将每个列表一起使用,但是尝试将列表正确链接在一起会变得混乱。我有这种感觉,我可能需要在对象填充 SomeClassData 的地方使用 aDictionary<string, object>或 a 。Dictionary<int, object>不知道我是否在这一点上偏离了这个想法。

4

2 回答 2

2

是的,您可以使用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;
于 2012-10-29T13:57:06.790 回答
0

您必须创建您调用的类的列表SomeClassData。每个元素都将具有相应的一组值。

于 2012-10-29T13:55:11.963 回答