0

構築された辞書を返すクラスを作成しようとしています。辞書を返すようにコンストラクターをコーディングする方法、キーとペアになる複数の文字列値を初期化する方法がわかりません。私が見つけた唯一の例は非常にラフなドラフトです。大まかな例を次に示します。

namespace MyApp.Helpers
{
    public enum HouseSize
    {
        Big,
        Medium,
        Small
    }
    class Houses
    {
        public static Dictionary<HouseSize, string> _dictionaryOfHouses;

        public static Dictionary<HouseSize, string> Houses
        {
            get
            {
                if (_dictionaryOfHouses == null)
                    LoadHouses();
                return _dictionaryOfHouses;
            }
        }
    }
    private static void LoadHouses()
    {
        _dictionaryOfHouses = new Dictionary<HouseSize, string>;
        _dictionaryOfHouses.Add(HouseSize.Big, /*Add String Properties Here like Red, 2 Floor, Built in 1975*/);
        _dictionaryOfHouses.Add(HouseSize.Small, /*Add String Properties Here like Blue, 1 Floor, Built in 1980*/);
    }
}
4

3 に答える 3

0

家のサイズの既存の列挙を使用する:

public enum HouseSize {
    Big,
    Medium,
    Small
}

家のプロパティを説明するクラスを作成する

public class HouseProperties {
    public string Colour { get; set; }
    public int NumFloors { get; set; }
    public int Year { get; set; }
}

// Create a Dictionary of House Sizes
// Use a List<HouseProperties> so you can have multiple houses
// of a house size, that can even have the same colour, number
// of floors and/or year
Dictionary<HouseSize, List<HouseProperties>> HouseDictionary = new Dictionary<HouseSize, List<HouseProperties>>();
// Initialize the House sizes
HouseDictionary.Add(HouseSize.Big, new List<HouseProperties>());
HouseDictionary.Add(HouseSize.Medium, new List<HouseProperties>());
HouseDictionary.Add(HouseSize.Small, new List<HouseProperties>());

// Adding a 2013 one-floor Mahogany Big House to the Dictionary
HouseDictionary[HouseSize.Big].Add(new HouseProperties() {
    Colour = "Mahogany",
    NumFloors = 1,
    Year = 2013
});
于 2013-05-02T14:27:28.033 に答える
0

最初に返されるいくつかのことDictionaryが問題にIDictionaryなる可能性があります。

私は次のようなものを見たい

private static void LoadHouses()
    {
        _dictionaryOfHouses = new Dictionary<HouseSize, Dictionary<string,string>;
        houseProperties = new Dictionary<String,String>();
        houseProperties.Add("Colour", "Red");
        // etc
        _dictionaryOfHouses.Add(HouseSize.Big, houseProperties);
    }

勇気あるなら事典>

追加のプロパティを入力できるようになりました

そのため、製造年は int および Color および enum である可能性があります。

ビルド後、アクセスできます

Houses[HouseSize.medium]["Colour"]
于 2013-05-02T14:06:20.237 に答える