我試圖從我的應用程序中的設置中讀出內容。下面是我在遇到麻煩的代碼:從設置中分割字符串
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;
}
的代碼應該很容易理解,因爲我知道它應該儘可能的工作,但事實並非如此。我在設置中輸入此:
如果我現在運行這個程序,我的第一個消息框打印出到底是什麼我進入,第二個打印出「一通」和第三打印「數組的長度: 1" 。現在我們到了我遇到麻煩的部分。接下來的消息是這樣的:
使文本的長度是22顯示在MessageBox,但低於這一說法下面是不正確的:
if (split1[i].Length >= 22)
我真的這個困惑,同時也做到這一點,當我檢查:
if (split1[i] != "")
任何幫助表示讚賞,因爲我不知道該怎麼辦,因爲我的代碼應該罰款。謝謝你的時間!
你是什麼意思「這種說法是不正確的」?任何錯誤消息,或者只是跳過'if'中的語句?此外,請幫忙檢查一下'MessageBox.Show(i +「 - 」+ split1 [1]);'是否是拼寫錯誤,或者您真的想要打印split1 ['** 1 **']'? – Prisoner
ohh你是對的它應該是split1 [i],謝謝,但這並沒有改變這個事實,即if語句被跳過 –
在你遇到問題的線上放置一個斷點,運行代碼,當你想到該行不符合預期,split1 [i]'的實際值是多少?這應該是你做的第一件事。 –