列表<列表<字符串>&GT;值到string [] []数组C#</list <string>

时间:2013-10-24 12:56:26

标签: c# string list multidimensional-array

我有以下两个变量:

        List<List<string>> result
        string[][] resultarray

我想从结果中获取值并将其存储在resultarray中,如下所示: [[“one”,“two”],[“three”],[“four”,“five”,six“],[”seven“],[”eight“]等等。

我有以下代码:

        string[][] resultarray = new string[resultint][];
        int a = new int();
        int b = new int();
        foreach (List<string> list in result)
        {
            foreach (string s in list)
            {
                resultarray[b][a] = s;
                a++;
            }
            b++;
        }
        return resultarray;

但是,在调试时,我在尝试递增a或b时得到“NullExceptionError:对象引用未设置为对象的实例”。我也尝试将它们声明为:

    int a = 0
    int b = 0

......这也不起作用。我没有正确地声明这些或者它是否与foreach循环有关?

2 个答案:

答案 0 :(得分:9)

每个子阵列都以null开头 - 您需要创建内部数组。

但更简单的方法是:

var resultarray = result.Select(x => x.ToArray()).ToArray();

如果我们假设输入类似于:

,则给出所述结果
var result = new List<List<string>> {
    new List<string> { "one", "two" },
    new List<string> { "three" },
    new List<string> { "four", "five", "six" },
    new List<string> { "seven" },
    new List<string> { "eight" },
};

答案 1 :(得分:3)

在内循环之前:

resultarray[b] = new string[list.Count];