我想將字符串數組列表轉換爲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