双/双列表<int> </int>

时间:2014-05-27 14:28:57

标签: c# list

我正在寻找一种存储两个List<int>对象的方法。我目前正在使用List<List<int>>,但仅使用[0][1]似乎很浪费。

有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

我认为你在寻找元组:

var t = Tuple.Create(new List<int>(), new List<int>());

然后只需访问t.Item1t.Item2

答案 1 :(得分:0)

感谢Servy指出,我错过了这一点。 OP想要创建复合List<int> + List<int>,而不是List<int+int>

public class Pair<T>
{
    public T Left { get; set; }
    public T Right { get; set; }

    public IntPair(T left, T right)
    {
        this.Left = left;
        this.Right = right;
    }
}

    //or you might want more flexibility
public class Pair<TLeft, TRight>
{
    public TLeft Left { get; set; }
    public TRight Right { get; set; }

    public IntPair(TLeft left, TRight right)
    {
        this.Left = left;
        this.Right = right;
    }
}

创建自己的数据类型以保存两个整数

public class IntPair
{
    public int A { get; set; }
    public int B { get; set; }

    public IntPair(int a, int b)
    {
        this.A = a;
        this.B = b;
    }
}

如果不需要返回列表,则仅暂时使用。 还有匿名类型。

//or generate this from the existing data
var pairs = Enumerable.Empty<object>()
                      .Select(o => new { A = 0, B = 0 })
                      .ToList();

for(int i = 0; i < 10; i++)
    pairs.add(new { A = i, B = i * 2 });

//do more with pairs...