C# 双重/双重列表

C# 双重/双重列表,c#,list,C#,List,我正在寻找一种存储两个列表对象的方法。我目前正在使用列表,但仅使用[0]和[1]似乎是浪费 有更好的方法吗?我想您正在寻找元组: var t = Tuple.Create(new List<int>(), new List<int>()); 然后访问t.Item1和t.Item2。多亏Servy指出,我没有抓住要点。 OP希望创建复合列表+列表,而不是列表 如果不需要返回列表,则仅暂时使用。 还有匿名类型 //or generate this from the exis

我正在寻找一种存储两个列表对象的方法。我目前正在使用列表,但仅使用[0]和[1]似乎是浪费


有更好的方法吗?

我想您正在寻找元组:

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

然后访问t.Item1和t.Item2。

多亏Servy指出,我没有抓住要点。 OP希望创建复合列表+列表,而不是列表

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

//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...

在抚摸成对的INT时掠夺:列表有两个列表有什么问题?你能更详细地描述一下你想要达到的目标吗?Tuple也是一个选项:我同意@qbenq。这取决于上下文,如果它们是逻辑链接的,那么将它们保存在一个类中?请解释您在这些列表中存储的信息类型,以及为什么只有0和1被使用。从元组中,您应该只在方法上下文中使用,您可以创建一个具有两个具有有意义名称的属性的类。然后使用列表。它的可读性和可维护性更高。这是一种浪费,只需使用Tuple即可。@SergeyBerezovskiy并称之为C语言中最糟糕的事情是夸张。@DavidG同意,使用IntPair,a,B这不是一个好的解决方案,这就是我为什么在问题下写评论的原因:@SergeyBerezovskiy同意,这就是为什么我和我怀疑你迟迟没有给出答案,直到OP提供了更多的上下文来说明他想要实现什么。@Xiaoy312你的代码实际上仍然在重新实现元组并称之为对
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...