C#list <string,list <string =“”>&gt;怎么样?

时间:2015-11-19 13:05:18

标签: c#

我花了一些时间在互联网上寻找解决方案,但我在C#的技能处于初级水平,我没有找到任何方法去做我想做的事。

情况就是这样:

我有一个向我返回对象的Web服务,在这个对象中有一个二维表。我想要做的是沿着这个表运行并将这些值放在List中。为了说明这是一个例子,我已经有了:

// creation of a list like : List <String, List<String>> myList
for (int i = 0; i < outPut.errors.Length; i++)
{
    string error = outPut.errors[i].data.label;
    //myList.add(error);
    if (outPut.errors[i].data.label != "" && outPut.errors[i] != null)
    {
         for (int j = 0; j < outPut.errors[i].data.corrections.Length; j++)
         {
              string corrections  = outPut.errors[j].data.corrections[0][j].ToString();
              //myList.add(corrections)
         }  
    }
}

所以在这个例子中我创建了一个二维List,其中第一个参数是一个String,第二个是一个List(就像一个二维表会有tab [x] [y],其中一个X有多个Y

显然在C#中你必须知道创建二维表的确切大小,我们永远不会知道这个表的大小。

那么是否有可能创建一个列表,例如我想要这样做或者我应该采用另一种方式吗?

2 个答案:

答案 0 :(得分:6)

要创建二维列表,请使用List<List<string>>定义一个列表,其中每个条目都是包含字符串的列表。您需要在进入时创建每个“行”列表,不会自动为您创建它们。

然而,在这种情况下,这并不是您想要的特殊标签字段。在这种情况下,您应该创建一个带有字符串标签和列表的对象,然后列出该对象。或者,如果您希望按标签查找并且没有重复的标签,您可以考虑Dictionary<string, List<string>>

答案 1 :(得分:3)

这可以通过如下使用元组来实现:

List<Tuple<String, List<String>>>

在这里查看元组的详细信息https://msdn.microsoft.com/en-us/library/system.tuple(v=vs.110).aspx 基本上它是一个用于存储元组的类,几乎就是你所追求的。 第一项是String,第二项是List