我有一个字符串列表列表,我想将它传递给另一个方法。
我对列表有点困惑,我不知道如何处理它们。
public Form(string[] header, List<> data)
列表是数据类型(或对象)吗?因为错误VS2010说它期待一种类型。
答案 0 :(得分:7)
列表与LT;&GT; - 是通用数据类型。您应该将列表项的类型放入括号中,在您的情况下,这是字符串列表 - List<string>
。
public Form(string[] header, List<List<string>> data)
答案 1 :(得分:5)
您应该将List<T>
视为建筑类型的模板。它实际上不是一种类型,即使它被称为泛型类型。
当你的程序运行时,它不能生成这种类型的对象。这是令人困惑的地方。它们用于使用类型参数构建新类型。类型参数是您传递给泛型类型的类型。例如:
List<T>
- 通用类型T
部分 - 类型参数。 T可以是任何类型,例如string
List<string>
您已创建新类型List<string>
。对于每个类型参数,C#编译器都会创建新类型。因此List<string>
与List<int>
完全不同。
它当然比引擎盖下的更复杂。类型实际上是由.NET框架在运行时创建的。这允许您在应用程序运行时决定要创建的类型。但是,C#编译器具有编译时类型检查,因此它也知道这个概念,并且不允许您简单地对泛型类型执行无效操作。
警告:模板已经是C ++中现有的概念,你不应该把它与C#泛型混淆。
答案 2 :(得分:0)
使用此:List<List<string>> data