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 };

可能是一个字典和一个 for 循环来引用所有 x1..100。

4

3 回答 3

3

只要x1其他地方没有引用 etc.,然后写:

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 回答