以下是模型中代码的示例
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/