我需要在函数中传递一堆列表作为参数。 传递单个列表的方式如下所示
functionA()
{
List<string>ColmnA = new List<string>();
myfunction(ColmnA);
}
void myfunction(List<string> list1)
{
}
现在我必须传递六个列表作为参数,这是唯一的方法还是有更短的方法来做到这一点
答案 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}传递}