传递列表列表作为参数

时间:2012-08-23 13:42:27

标签: c# arrays string list

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

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

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

列表是数据类型(或对象)吗?因为错误VS2010说它期待一种类型。

3 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分:5)

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

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

  1. List<T> - 通用类型
  2. T部分 - 类型参数。 T可以是任何类型,例如string
  3. 如果使用泛型类型(1),某些类型作为类型参数(2),则创建新类型:List<string>
  4. 您已创建新类型List<string>。对于每个类型参数,C#编译器都会创建新类型。因此List<string>List<int>完全不同。

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

    警告:模板已经是C ++中现有的概念,你不应该把它与C#泛型混淆。

答案 2 :(得分:0)

使用此:List<List<string>> data