-1
        Dictionary<string, List<Piese>> SetPiese = new Dictionary<string, List<Piese>>();

        char[] litere = "ABCDEFGHIJLMNOPRSTUVXZ".ToCharArray();

        for (int i = 1; i <= litere.Length; i++) {
            SetPiese.Add(litere[i], Set + litere[i]);
        }

        List<Piese> SetA = GenerareSetLitere("A", 1, 11);
        List<Piese> SetB = GenerareSetLitere("B", 9, 2);
        List<Piese> SetC = GenerareSetLitere("C", 1, 5);
        ................................................

だから私はたくさんのリストを持っていて、それらを辞書に追加したいと思います。どうすればこれを正しく行うことができますか?

4

2 に答える 2

7

簡単に言うと、最初から別々の変数で宣言しないでください。これは、プログラムで作業するのが常に面倒です。始めた場合:

List<Piese>[] sets = new List<Piese>[]
{
    GenerareSetLitere("A", 1, 11),
    GenerareSetLitere("B", 9, 2),
    GenerareSetLitere("C", 1, 5)
    ...
};

次に、次を使用できます。

// Note loop condition change
for (int i = 0; i < litere.Length; i++) {
    SetPiese.Add(litere[i], sets[i]);
}

または、さらに良いことに、literereが実際にインラインで指定できる一連の式である場合は、コレクション初期化子ですべてを実行できます。

Dictionary<string, List<Piese>> SetPiese = new Dictionary<string, List<Piese>>
{
    { "first-key", GenerareSetLitere("A", 1, 11) },
    { "second-key", GenerareSetLitere("B", 9, 2) }
};

于 2013-02-04T21:07:02.430 に答える
2

私はこれがうまくいくと思います:

Dictionary<string, List<Piese>> SetPiese = new Dictionary<string, List<Piese>>();
List<Piese> SetA = GenerareSetLitere("A", 1, 11);
List<Piese> SetB = GenerareSetLitere("B", 9, 2);
List<Piese> SetC = GenerareSetLitere("C", 1, 5);
SetPiese.Add("A", SetA);
SetPiese.Add("B", SetB);
SetPiese.Add("C", SetC);

辞書のキーについて言及していないのでわかりません。

于 2013-02-04T21:06:37.400 に答える