2017-03-16 8 views
2

文字列配列のリストをint配列のリストにキャストしようとしています。私は、次のことを試してみました:リスト<String[]>をリスト<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

あなたがリストに(IEnumerable<int[]>です).Select()結果を変換する.ToList<T>()を使用することができます。
このようにして、アイテム配列のすべての項目にint.Parseを適用し、結果をListに変換します。
また、コードの均質性を提供するために、あなたの代わりにArray.ConvertAllのLINQ SelectToArrayを使用することができます。

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(); 
関連する問題