我有以下两个变量:
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循环有关?
答案 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];