C#でList型の2次元配列を使う

行ごとに大きさが変動するような2次元配列を使いたいときは、List型の2次元配列を使うと便利です。

下記のように使用します。

       public void DataGet(string[] data_lines) {

            //int j = 0;
            Boolean is_first = true;

           // 最初のドラッグ&ドロップで取得するデータ
            if (IsData == false)
            {
                this.titles = data_lines[0].Split(',');   // 先頭行を1次元配列で取得
            }

            list_num = data_lines.Length;


            foreach (string line in data_lines)
            {
                List<int> Items = new List<int>();

                // データを一次元配列に入れる
                string[] cells = line.Split(',');   // cells[]に各行の値1次元配列で取り込む

                if (is_first == true)
                {
                    is_first = false;
                }
                else {
                    /* データ */
                    for (int j = 0; j < cells.Length; j++)
                        if (cells[j] == "") {
                            break;
                        }else
                        {
                        Items.Add(Convert.ToInt16(cells[j]));
                    }
                    pList.Add(Items);
                }
            }
      }    

リストのサイズの最大値を取得する場合は下記のように記述します。

                PS_F.DataGet(data_lines);
                int ColNumMax= PS_F.pList.Count;//50
                int ColNumMin = PS_F.pList.Max(innerList => innerList.Count);

データの指定方法は下記のように記述します。

int value = PS_F.pList[3][7];  // 3行目の7列目を取得する