-2

我有一个字符串列表列表,我想将它传递给另一个方法。

我对列表有点困惑,我不知道如何处理它们。

public Form(string[] header, List<> data)

List 是一种数据类型(或对象)吗?因为错误 VS2010 说它需要一个类型。

4

3 回答 3

7

List<> - 是通用数据类型。您应该将列表项的类型放入括号中,在您的情况下,这是字符串列表 - List<string>

public Form(string[] header, List<List<string>> data)
于 2012-08-23T13:43:16.753 回答
5

您应该将List<T>其视为构建类型的模板。它实际上不是一种类型,即使它被称为泛型类型。

当你的程序运行时,它不能生成这种类型的对象。这就是令人困惑的地方。它们用于使用类型参数构建新类型。类型参数是您传递给泛型类型的类型。例如:

  1. List<T>- 泛型类型
  2. T部分 - 类型参数。T 可以是任何类型,例如string
  3. 如果您使用泛型类型 (1),并且某些类型作为类型参数 (2),您将创建新类型:List<string>

您已经创建了新类型List<string>。对于每个类型参数,C# 编译器都会创建新类型。所以List<string>是完全不同的List<int>

当然,它比引擎盖下的要复杂得多。类型实际上是由 .NET 框架在运行时创建的。这使您可以决定在应用程序运行时要创建哪些类型。但是,C# 编译器具有编译时类型检查,因此它也知道这个概念,并且不允许您简单地对泛型类型执行无效操作。

警告:模板已经是 C++ 中的现有概念,您不应将其与 C# 泛型混淆。

于 2012-08-23T13:50:44.083 回答
0

用这个:List<List<string>> data

于 2012-08-23T13:44:17.613 回答