列表<;列表<;字符串>&燃气轮机;将值转换为字符串[][]数组C#

列表<;列表<;字符串>&燃气轮机;将值转换为字符串[][]数组C#,c#,string,list,multidimensional-array,C#,String,List,Multidimensional Array,我有以下两个变量: List<List<string>> result string[][] resultarray …这也不行。我是不是没有正确地声明这些,还是与foreach循环有关?每个子数组都以null开头-您需要创建内部数组 但更简单的方法是: var resultarray = result.Select(x => x.ToArray()).ToArray(); 如果我们假设输入类似于: var result = ne

我有以下两个变量:

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

…这也不行。我是不是没有正确地声明这些,还是与foreach循环有关?

每个子数组都以
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" },
};
var结果=新列表{
新名单{“一”、“二”},
新名单{“三”},
新名单{“四”、“五”、“六”},
新名单{“七”},
新名单{“八”},
};
在内部循环之前:

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

第二个foreach是不必要的,只需使用
resultarray[b]=list.ToArray()谢谢。我一直在想办法把我的头缠在林克身上,但我还是不太明白。我会多读一些。@reallybadatmath它说的基本上是“创建一个投影,其中每个项目都成为该项目上
ToArray()
的结果;然后根据该投影的结果创建一个数组”再次感谢Marc。你的解释很有道理——比试图以递增整数作为索引的目标要简单得多。如果我们要用内循环做任何事情,@sasjaq就知道了
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" },
};
resultarray[b] = new string[list.Count];