public IList<IList<string>> GetListOfLists()
{
var result = new List<List<string>>();
return result;
}
为什么当List实现IList?
时,return语句会抛出此编译错误无法将
'System.Collections.Generic.List<System.Collections.Generic.List<string>>'
类型隐式转换为'System.Collections.Generic.IList<System.Collections.Generic.IList<string>>'
。存在显式转换(您是否缺少演员?)c:\ ConsoleApplication1 \ Program.cs 18 20 ConsoleApplication1
最佳解决方法是什么?
答案 0 :(得分:1)
您的演员阵容会隐式使用setTranscribeCallback()
到List<T>
。但是,IList<T>
与List<List<T>>
不兼容,因为类型参数不同。
在不更改返回类型的情况下,您可以做的最好的事情是
IList<IList<T>>
在您的情况下没有任何区别,因为var result = new List<IList<string>>();
与IList<string>
会更改返回列表的类型,而不会更改内容。特别是,您当然可以添加List<string>
作为IList<string>
的元素。
答案 1 :(得分:-2)
为什么不使用这个......
public List<List<string>> GetListOfLists()
{
var result = new List<List<string>>();
return result;
}
或者我错过了你需要的东西?