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を使用してドロップダウンボックスに入力するプロパティをビューに提供できるようにします。Filter Range(s)は、データベースからデータを取得するためのlinqクエリを生成するために、ActionResultからのパラメーターとしてドロップダウンボックスからPosition値を受け入れることができるようにコントローラーによって使用されます。

私は、さまざまなタイプごとにリストを作成してから、各リストを一緒に使用するのが最善の方法だと思い始めましたが、リストを適切にリンクしようとすると面倒になります。オブジェクトがSomeClassDataに入力されている場合は、Dictionary<string, object>またはを使用する必要があるかもしれないと感じています。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 に答える