0

100 個のリスト (x1 から x100 など) がある場合、コードの最終行を表現するより良い方法はありますか?

        var x1 = new List<int>() { 75 };
        var x2 = new List<int>() { 95, 64 };
        var x3 = new List<int>() { 17, 47, 82 };
        var x4 = new List<int>() { 18, 35, 87, 10 };
        var x5 = new List<int>() { 20, 04, 82, 47, 65 };
        var x6 = new List<int>() { 19, 01, 23, 75, 03, 34 };
        var x7 = new List<int>() { 88, 02, 77, 73, 07, 63, 67 };
        //etc..
        var listOfListOfInts = new List<List<int>>() { x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15 };

すべての x1..100 を参照するディクショナリと for ループの可能性があります。

4

3 に答える 3

3

x1などが他の場所で参照されていない限り、次のように記述します。

var listOfListOfInts = new List<List<int>>()
{
    new List<int>() { 75 },
    new List<int>() { 95, 64 },
    //etc.
};

実際、たとえばと同じくらい優れているので、他の場所で個々の変数を参照する必要はありません。listOfListOfInts[0]x1

于 2012-06-07T03:28:37.183 に答える
2

これらをタイプにする必要が本当にありますList<T>か?事前に初期化されたデータを設定しているようです。これらの「リスト」の長さを変更する予定がない場合は、代わりに配列を使用できます。構文はよりコンパクトです:

var listOfListOfInts = new[] {
    new[] { 75 },
    new[] { 95, 64 },
    new[] { 17, 47, 82 },
    new[] { 18, 35, 87, 10 },
    new[] { 20, 04, 82, 47, 65 },
    new[] { 19, 01, 23, 75, 03, 34 },
    new[] { 88, 02, 77, 73, 07, 63, 67 },
    // ...
};
于 2012-06-07T03:30:38.523 に答える
0

おそらく私は物事を複雑にしすぎていますが、あなたは次のようなことをすることができます

public interface IClass1
{
    IList<IList<int>> ListList { get; set; }
    void AddList(List<int> nList);
}

public class Class1 : IClass1
{
    public IList<IList<int>> ListList { get; set; }

    public void AddList(List<int> nList)
    {
        ListList.Add(nList);
    }
}

そしてそれを次のように使用します:

public class Create1
{
    public Create1()
    {
        IClass1 iClass1 = new Class1();
        iClass1.AddList(new List<int>() { 75 });
    }
}
于 2012-06-07T04:20:04.413 に答える