2017-05-08 5 views
0

私のアプリケーション内の設定から内容を読み出そうとしています。設定からの文字列の分割

private bool checkGrid() 
{ 
    string playlists = Spotify_Extender.Properties.Settings.Default.Playlists; 

    MessageBox.Show(playlists); 

    string[] split1; 

    if (playlists.Contains(";")) 
    { 
     MessageBox.Show("Multiple Links"); 
     split1 = playlists.Split(';'); 
    } 
    else 
    { 
     MessageBox.Show("One Link"); 
     split1 = new string[1]; 
     split1[0] = playlists; 
    } 

    MessageBox.Show("Array Length: " + split1.Length); 

    int lines = 0; 

    for (int i = 0; i < split1.Length; i++) 
    { 
     MessageBox.Show("Check #" + i + " - " + split1[i] + " - Length: " + split1[i].Length); 
     if (split1[i].Length >= 22) 
     { 
      MessageBox.Show(i + " - " + split1[1]); 
      lines++; 
     } 
    } 

    int rows = this.playlistGrid.Rows.Count; 

    MessageBox.Show(lines + ""); 

    if (rows == lines) 
     return true; 

    return false; 
} 

コードが理解しやすくする必要があり、それは私の知る限り承知していますが、それがないと動作するはずです:以下は私がトラブルを抱えているコードがあります。私は私の設定でこれを入力する:

enter image description here

私は今、プログラムを実行すると、私の最初のメッセージボックスのプリントアウトは、私が入ったまさに、二番目のプリントアウト「一つのリンク」と第三版画「配列の長さ: 1 "となる。今私は問題に苦しんでいる部分に行きます。

enter image description here

だから、メッセージボックスに表示されるテキストの長さは22ですが、ダウンこのステートメント以下は真ではありません:

if (split1[i].Length >= 22) 

私は本当によ次のメッセージはこれですこれによって混乱し、私はこれをチェックするとき、それはまた、この処理を行います。私は何をするかわからないので、私のコードは問題ないはずですので、

if (split1[i] != "") 

すべてのヘルプは、感謝されます。御時間ありがとうございます!

+0

何を持っている必要がありますか?エラーメッセージが表示されたり、 'if'の文がスキップされます。さらに、 'MessageBox.Show(i +" - "split1 [1]);'がタイプミスか、本当に 'split1 [' ** ** 1 ** ']'を印刷したいのですか? – Prisoner

+0

ohhあなたは正しいですsplit1 [i]、ありがとう、しかしこれはif文がスキップされたという事実を変えません –

+1

あなたが問題を抱えている行にブレークポイントを置き、行が期待どおりに動作していない場合、 'split1 [i]'のACTUAL値は何ですか?これはあなたが最初にやるべきことです。 –

答えて

-1

あなたは「この文は真実ではない」という意味split[i]なくsplit[1]

+1

これは既にコメントで言われていますが、OPは入力ミスを認めていますが、質問。 – Steve