カンマで区切られた数字を配列に変換

 1, 2, 13, 14, 105, 106, 1007, 1008,
 2, 13, 14, 105, 106, 1007, 1008,
 13, 14, 105, 106, 1007, 1008,
 14, 105, 106, 1007, 1008,
 105, 106, 1007, 1008,
 106, 1007, 1008,
 1007, 1008,
 1008,
1
2
13
14
105
106
1007
1008

C# でカンマで区切られた数字の列を、int 型に変換して配列に格納します。
" 1, 2, 13, 14, 105, 106, 1007, 1008, "

前田稔(Maeda Minoru)の超初心者のプログラム入門

プログラムの説明

  1. フォルダーに次のファイルを格納して下さい。
    /********************************************/
    /*★ 数字の文字列を配列に変換     前田 稔 ★*/
    /********************************************/
    using System;
    
    class Prog
    {
        static string str = " 1, 2, 13, 14, 105, 106, 1007, 1008, ";
        static int[] t = new int[8];
    
        public static void Main()
        {
            int    pt, i;
            string wk;
    
            wk = str;
            for(i=0; i<8; i++)
            {
                Console.WriteLine("{0}", wk);
                pt = wk.IndexOf(',');
                t[i] = Convert.ToInt32(wk.Substring(0,pt));
                wk = wk.Substring(pt+1);
            }
    
            for(i=0; i<8; i++)
                Console.WriteLine("{0}", t[i]);
        }
    }
    
  2. カンマで区切られた数字の列(string)を、int 型に変換して配列に格納します。
    数字を定義した string と int 型配列の定義です。
    static string str = " 1, 2, 13, 14, 105, 106, 1007, 1008, ";
    static int[] t = new int[8];
  3. wk は作業用の string 領域です。
    pt には wk.IndexOf(',') で「,」の位置(一件分の数字の長さ)を格納します。
    wk から Substring(0,pt) で一件分の数字列を取り出して、int 型に変換します。
    wk には wk.Substring(pt+1) で、先頭の数字列を取り除いた列を格納します。
            int    pt, i;
            string wk;
    
            wk = str;
            for(i=0; i<8; i++)
            {
                pt = wk.IndexOf(',');
                t[i] = Convert.ToInt32(wk.Substring(0,pt));
                wk = wk.Substring(pt+1);
            }
        
  4. IndexOf() は最初に見つけた位置ですが、LastIndexOf() は最後に見つけた位置です。
    見つからなかったときは -1 が格納されます。
        string A = "abcdecd";       // 被検索文字列
        string B = "cd";            // 検索文字列
        int    idx = A.LastIndexOf(B);   // 5(最後の見つかった位置)
        
  5. 今回のような問題では Split() を使う方法がお勧めです。
    Split() を使う方法は カンマで区切られた数字を float に変換 を参照して下さい。

[Next Chapter ↓]カンマで区切られた数字を float に変換
[Previous Chapter ↑]string⇔char[]

超初心者のプログラム入門(C# Frame Work)