Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何让一个方法接受不确定数量的不同类型的列表?_C#_.net_List - Fatal编程技术网

C# 如何让一个方法接受不确定数量的不同类型的列表?

C# 如何让一个方法接受不确定数量的不同类型的列表?,c#,.net,list,C#,.net,List,如何定义一个方法,该方法接受不确定数量的不同类型的一维列表,然后对它们进行迭代?我正在尝试以下操作,但params参数出现错误:“意外使用未绑定泛型类型” private void dostuffWithList(参数列表[]列表) { foreach(列表中的变量列表) { //在每个列表中输入特定的内容 } } 如果不能保证这些类型是通用的,则它们必须是非泛型列表。因此: private void doStuffWithLists(params IList[] lists) { fo

如何定义一个方法,该方法接受不确定数量的不同类型的一维列表,然后对它们进行迭代?我正在尝试以下操作,但params参数出现错误:“意外使用未绑定泛型类型”

private void dostuffWithList(参数列表[]列表)
{
foreach(列表中的变量列表)
{
//在每个列表中输入特定的内容
}
}

如果不能保证这些类型是通用的,则它们必须是非泛型列表。因此:

private void doStuffWithLists(params IList[] lists)
{
    foreach (var list in lists)
    {
        // do type-specific stuff with each list
    }
}

请注意,open泛型类型
List
仅适用于非常有限的反射场景(例如,在运行时构造特定的列表类型,如
MakeGenericType()
)。您不能将其用作
列表
-或
列表
-的占位符-它们在不同的存储库中工作,Marc。我已经试过了,但是编译器抱怨说
IList
“需要1个类型参数”。如果我仅尝试使用
List
,则该方法会编译,但我的调用代码在转换时会出错,例如,将List转换为List。@NSouth您缺少使用
指令的
;使用系统集合添加
到文件的顶部-然后
IList
应该可以正常工作,也许可以使用另一个祖先,类似于
private void dostuffWithList(params IEnumerable[]lists)
。例如,您可以使用
foreach(列表中的var list){int count=list.count();}
etc..@marcGravel,就是这样!非常感谢你。该方法现在正按预期工作。
private void doStuffWithLists(params IList[] lists)
{
    foreach (var list in lists)
    {
        // do type-specific stuff with each list
    }
}