【C#.Net】カンマ区切り文字列を一発で配列へ変換する【GetSplitToArray】

C#

カンマ区切りの文字列でデータを渡してくるシステムが有り、受け取ったデータの精査や整形の為に一発で配列へ変換する関数を考えて見た。

 

スポンサーリンク

実行環境

  • Windows 10 Pro 1909
  • Visual Studio Express 2013 for Windows Desktop
  • Visual C# 5.0

こんなデータがありまして


ログデータとかで良くある感じ。

“server”“yyyy/mm/dd”“hh:mm:ss”“status”

今回は定期的にログを取得してそのデータを整形してメール通知する って仕組みを作りたいので、
まずは上記のデータ(カンマ区切り)を配列に変換したい。

なので以下の様に配列に変換出来る関数を作って見た。

GetSplitToArray

 
以下コピッペでOK。

        /****************************************************************************/
        /*                                                                          */
        /* 処理概要 : 文字配列変換取得処理                                          */
        /* メソッド名 : GetSplitToArray                                             */
        /*                                                                          */
        /****************************************************************************/
        private string[] GetSplitToArray(string InputValue, string strChara = ",")
        {
            string[] SplValue;
            string[] SplWkValue;
            string[] retValue;

            // データを指定文字で区切る
            // 指定文字が省略された場合はカンマ区切りとする
            SplValue = InputValue.Replace("'", "").Split(Convert.ToChar(strChara));

            SplWkValue = new string[SplValue.Length];
            int ListCount = 0;

            for (int Cnt = 0; Cnt < SplValue.Length; Cnt++)
            {
                SplValue[Cnt] = SplValue[Cnt].Trim();

                if (SplValue[Cnt] != "")
                {
                    SplWkValue[ListCount] = SplValue[Cnt];
                    ListCount = ListCount + 1;
                }
            }

            retValue = new string[ListCount];

            if (ListCount == 0)
            {
                return retValue;
            }

            for (int Cnt = 0; Cnt < ListCount; Cnt++)
            {
                retValue[Cnt] = SplWkValue[Cnt];
            }

            // 返却値
            return retValue;
        }

strCharaはデフォルト引数で、省略された場合はカンマとしています。

もしタブ区切りだったりその他の文字列で区切られたデータの場合はその区切り文字を渡してあげましょう。

呼び元はこんな感じで分けたいデータを渡してあげるとよい↓

string[] arrLogData = GetSplitToArray(strLogData);

実際の動き


GetSplitToArray通過後にブレーク張ってます。渡してる値はカンマ区切りなのでstrCharaは省略

C# は いいぞ。(CV:ちょ○ど)

コメント