在列表中创建列表C#

时间:2011-12-11 18:07:16

标签: c# list

如果我有2个以上的int数列表,那么我可以将这些列表存储在另一个列表中以将其传递给另一个类或方法吗?我希望能够单独访问每个列表,但我希望能够在一个批处理中将它们全部传递出去。这将是什么语法以及访问主列表中的每个列表的正确方法。例如,我有这些个人名单:

List<int> Nums1= new List<int>(new int[] { 6, 76, 5, 5, 6 });
List<int> Nums2= new List<int>(new int[] { 6, 4, 7, 5, 9 });
List<int> Nums3= new List<int>(new int[] { 22, 11, 5, 4, 6 });

我想将它们存储在另一个列表中以传递给方法,例如:

static public List<int> DoSomething (List<int> Allnums)
{

//My calculations

}

然后我希望能够将它们存储回主列表并将它们返回给我的主列表。

6 个答案:

答案 0 :(得分:10)

您可以使用List<List<int>>类型来保存列表。

List<List<int>> allNums = new List<List<int>>();

allNums.Add(Nums1);
allNums.Add(Nums2);
allNums.Add(Nums3);

DoSomething(allNums);

//elsewhere
static public List<int> DoSomething (List<List<int>> Allnums)
{

//My calculations

}

答案 1 :(得分:1)

这是完全可能的:

static public void DoSomething (List<List<int>> Allnums)
{

//My calculations

}

请注意,没有理由返回List;该参数指向原始列表列表。 您必须首先将所有列表放在列表中:

List<List<int>> allLists = new List<List<int>>();
allLists.Add(Nums1);
allLists.Add(Nums2);
allLists.Add(Nums3);

DoSomething(allLists);

答案 2 :(得分:1)

这取决于已经作为awnser给出的,你可以使用List<List<int>>。 虽然,由于我们使用的是OO语言,并且每次使用的int列表数量相同,我建议使用一个对象。

这样的事情:

public class MyIntListObject
{
    public List<int> Output1 {get;set;}
    public List<int> Output2 {get;set;}
}

保存您的清单。我建议将其用于维护。

你的方法会变成这样的东西:

static public MyIntListObject DoSomething (List<int> Allnums)
{

//My calculations

}

答案 3 :(得分:0)

static public List<int> DoSomething (List<int> Allnums)
{

//My calculations

}

应该是

static public List<int> DoSomething (List<List <int>> Allnums)
{

//My calculations

}

答案 4 :(得分:0)

出了什么问题:

Tuple<List<int>,List<int>>

答案 5 :(得分:0)

//static public List<int> DoSomething (List<int> Allnums)
DoSomething(Nums1.Concat(Nums2).Concat(Nums3).ToList());