SomeFunction(params string[] keys)
{
...
parameters.AddRange("paramKeys", keys);
...
}
这种组合,如下所示:
IEnumerable<object>
抛出
以下方法或属性之间的调用不明确:'ExtensionMethods.AddRange(List,string,object [])'和'ExtensionMethods.AddRange(List,string,IEnumerable)'
我大致知道为什么抛出它(一个数组也是IEnumerable),但我不知道如何修复它而不删除任何两种方法。如何告诉IEnumerable<object>
方法它不对数组负责,而是对所有其他类型的{{1}}负责?
答案 0 :(得分:1)
您遇到了问题,因为string[]
的类型为IEnumberable
,但也是object[]
的类型(因为所有引用类型都来自object
)。
您需要做的是将其转换为扩展方法所期望的正确类型:
parameters.AddRange("paramKeys", (object[])keys);
// OR
parameters.AddRange("paramKeys", (IEnumerable<object>)keys);