如何将List <string []>转换为List <int []>?

时间:2017-03-16 10:27:41

标签: c# linq

我正在尝试将字符串数组列表转换为int数组列表。我尝试过以下方法:

List<int[]> dataset = Read(fileName, separator).Select(
    line => Array.ConvertAll(line, s => int.Parse(s)
);

读取返回字符串数组的列表:List<String[]> dataset

3 个答案:

答案 0 :(得分:3)

您可以使用.ToList<T>().Select()结果(IEnumerable<int[]>)转换为列表。
这样,您将int.Parse应用于项目数组的每个项目,并将结果转换为List 此外,为了提供代码同质性,您可以使用LINQ SelectToArray代替Array.ConvertAll

List<string[]> stringArrayList = ...;
List<int[]> intArrayList = stringArrayList
    .Select(stringArray => stringArray.Select(int.Parse).ToArray())
    .ToList();

一个小小的修正:你没有施放字符串到一个int,你转换/解析它。

答案 1 :(得分:0)

您可以尝试这样的事情:

groovy.lang.MissingMethodException: No signature of method: somePackage.FooControllerSpec$_$spock_feature_0_9_closure14.doCall() is applicable for argument types: (java.util.Arrays$ArrayList) values: [[[:]]]

答案 2 :(得分:0)

List<string[]> source = new List<string[]>
{
    new string[2] { "2", "3" },
    new string[4] { "4", "5", "6", "7" },
    new string[1] { "1" }
};

List<int[]> result = source.Select(array => Array.ConvertAll(array, item => int.Parse(item))).ToList();