Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用属性声明类并同时填充这些属性的最佳方法是什么_C#_Asp.net_Asp.net Mvc 3_Class_Properties - Fatal编程技术网

C# 用属性声明类并同时填充这些属性的最佳方法是什么

C# 用属性声明类并同时填充这些属性的最佳方法是什么,c#,asp.net,asp.net-mvc-3,class,properties,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 Stri

下面是一个示例,说明模型中的代码可能是什么样子

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。不确定我是否偏离了这个想法。

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

是的,您可以使用
字典


谢谢你。这正是我想要的。我很乐意帮助你
var col = Dictionary<string, SomeClassData>
{
    { "Desc1", new SomeClassData{Position =1, String2Minimum =0100, String2Maximum = 0199}},
    { "Desc2", new SomeClassData{Position =1, String2Minimum =0100, String2Maximum = 0199}},
    ....
};
var fix = from entry in col 
          where entry.Key == "Desc1"
          select new entry.Value;