2017-03-16 161 views
2

我想將字符串數組列表轉換爲int數組列表。我曾嘗試以下:如何轉換List <String[]>至List <int[]>?

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

讀返回字符串數組列表:List<String[]> dataset

+3

你不能** **投字符串爲int,你可以**轉換(解析)**它。 –

+1

一個簡單的循環可能更容易理解和調試 – Vland

+0

那就是我的意思,對不起。 – Aevitus

回答

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,你轉換/解析它。

+0

謝謝,這就是我正在嘗試做的! – Aevitus

+0

@TimSchmelter不知道我是否明白你的意思:)爲什麼它不是有效的?誰使用它? –

0

你可以嘗試這樣的事情:

List<int[]> Listintegers = yourList 
    .Select(y => y.Select(x => int.Parse(x)).ToArray()) 
    .ToList(); 
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(); 
相關問題