1. ホーム
  2. c#

[解決済み] LINQで文字列をint型配列に変換する【重複あり

2023-08-03 13:47:17

質問

<余談

文字列をint型の配列に変換する関数(tointarray)があるのですが、あまり満足していません。それは仕事をしますが、これを行うにはよりエレガントな方法があるはずで、おそらく LINQ が助けてくれるかもしれません。残念ながら、私はLINQがあまり得意ではありません。より良い方法はありますか?

私の関数です。

{
    string s1 = "1;2;3;4;5;6;7;8;9;10;11;12";
    int[] ia = tointarray(s1, ';');
}
int[] tointarray(string value, char sep)
{
    string[] sa = value.Split(sep);
    int[] ia = new int[sa.Length];
    for (int i = 0; i < ia.Length; ++i)
    {
        int j;
        string s = sa[i];
        if (int.TryParse(s, out j))
        {
            ia[i] = j;
        }
    }
    return ia;
}

どのように解決するのですか?

これは の投稿は同様の質問をし、それを解決するためにLINQを使用しました。もしかしたら、あなたにも役立つかもしれません。

string s1 = "1;2;3;4;5;6;7;8;9;10;11;12";
int[] ia = s1.Split(';').Select(n => Convert.ToInt32(n)).ToArray();