IList<IList<(ClassType)>> 的 C# 参数

标签 c# list generics parameters casting

我似乎无法弄清楚为什么以下内容不起作用。

通过阅读,它似乎一定与 this 之类的东西有某种关联。 .

public class Test<T>
{
    public void SomeFunction(IList<IList<T>> ListOfLists)
    {
    }
}

....

List<List<SimpleClass>> lists = new List<List<SimpleClass>>();
new Test<SimpleClass>().SomeFunction( (IList<IList<SimpleClass>>)lists );

我怎样才能要求一个列表实际上是列表的列表?我似乎无法理解我做错了什么。

谢谢,

最佳答案

A List<List<SimpleClass>>不是 IList<IList<SimpleClass>> .

例如,对于后一种类型,您可以调用 lists.Add(new SimpleClass[5])作为SimpleClass[]工具 IList<SimpleClass> .但是你不能用 List<List<SimpleClass>> 做到这一点,因为每个元素都必须是 List<SimpleClass> .

不过这没问题:

List<IList<SimpleClass>> lists = new List<IList<SimpleClass>>();

关于IList<IList<(ClassType)>> 的 C# 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16572904/

相关文章:

c# - ApiController 的输出缓存(MVC4 Web API)

c# - .NET 应用程序天生就是内存密集型的吗?

c# - 如何正确地将 `TempDataDictionary` 注入(inject)到我的类中?

c# - 显式实现的接口(interface)和通用约束

java - 将带有通用参数的类传递给注释

c# - 从 C++ COM dll 生成的互操作程序集给出构建引用错误

python - 更新列表中的匹配行

list - 通过函数组合有效的列表追加/前置

c++ - 多个对象的列表c++

Swift 泛型(类型替换?)