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