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