如何将一堆列表作为参数传递给函数

时间:2017-10-19 13:40:12

标签: c# list function parameters

我需要在函数中传递一堆列表作为参数。 传递单个列表的方式如下所示

functionA()
{
   List<string>ColmnA = new List<string>();
   myfunction(ColmnA);
}

void myfunction(List<string> list1)
{

}

现在我必须传递六个列表作为参数,这是唯一的方法还是有更短的方法来做到这一点

4 个答案:

答案 0 :(得分:1)

尝试使用params关键字:

void myfunction(params List<string>[] list1)
{    
}

现在您可以将此功能称为:

myfunction(new List<string>(), new List<string>());

答案 1 :(得分:1)

C#具有params功能。您可以像这样使用它

void MyFunction( params List<string>[] myStrings ) { }

然后调用它

MyFunction( new List<string>(), new List<string>(), ...etc );

MyFunction( new []{ new List<string>(), new List<string>() } );

答案 2 :(得分:0)

听起来你需要考虑如何发送信息。您可以考虑创建一个包含所需内容的对象,然后将该objact作为参数发送。例如:

public class YourObject
{
    List<string> List1 { get; set; }
    List<string> List2 { get; set; }
    List<string> List3 { get; set; }
}

然后在你的功能......

void myfunction(YourObject bunchOfLists)
{
     //do something
}

无论如何,您必须考虑这是否是您的最佳方法,具体取决于您的模型和业务逻辑。尝试根据您需要的某种逻辑合并列表。不要自由添加列表,因为它更简单。

答案 3 :(得分:0)

如果您传递了functionA()中的所有列表,那么您可以将它们作为单独的参数传递(即myfunction(List<string>list1, List<string>list2, List<string>list3, List<string>list4, List<string>list5, List<string>list6)),也可以将它们作为单个列表列表{{1}传递}