我花了一些时间在互联网上寻找解决方案,但我在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#中你必须知道创建二维表的确切大小,我们永远不会知道这个表的大小。
那么是否有可能创建一个列表,例如我想要这样做或者我应该采用另一种方式吗?
答案 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