我想将字符串数组列表转换为int数组列表。我曾尝试以下:如何转换List <String[]>至List <int[]>?
List<int[]> dataset = Read(fileName, separator).Select(
line => Array.ConvertAll(line, s => int.Parse(s)
);
读返回字符串数组列表:List<String[]> dataset
我想将字符串数组列表转换为int数组列表。我曾尝试以下:如何转换List <String[]>至List <int[]>?
List<int[]> dataset = Read(fileName, separator).Select(
line => Array.ConvertAll(line, s => int.Parse(s)
);
读返回字符串数组列表:List<String[]> dataset
您可以使用.ToList<T>()
转换.Select()
结果(这是IEnumerable<int[]>
)到列表中。
这样,您将int.Parse
应用于项目数组的每个项目,并将结果转换为List。
此外,为了提供代码同质化,你可以使用LINQ Select
和ToArray
代替Array.ConvertAll
:
List<string[]> stringArrayList = ...;
List<int[]> intArrayList = stringArrayList
.Select(stringArray => stringArray.Select(int.Parse).ToArray())
.ToList();
一个小纠正:你不投字符串为int,你转换/解析它。
谢谢,这就是我正在尝试做的! – Aevitus
@TimSchmelter不知道我是否明白你的意思:)为什么它不是有效的?谁使用它? –
你可以尝试这样的事情:
List<int[]> Listintegers = yourList
.Select(y => y.Select(x => int.Parse(x)).ToArray())
.ToList();
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();
你不能** **投字符串为int,你可以**转换(解析)**它。 –
一个简单的循环可能更容易理解和调试 – Vland
那就是我的意思,对不起。 – Aevitus