2014-03-03 99 views
0

我有一個字符串:如果捉「」當語句條件未能

Dim email As String = "[email protected];" 

我試圖讓電子郵件地址唯一,所以我把它分解:

Dim emailArray As String() = Split(email, ";", 2) 

在包含數組VB正在看到電子郵件地址(0)和「」(1)

當我試圖通過使用以下內容循環遍歷數組來添加電子郵件地址:

For count As Integer = 0 to emailArray().Length - 1 
    If emailArray(count) <> "" Then 
    message.To.Add(emailArray(count)) 
    End If 
Next 

問題是程序仍嘗試在電子郵件地址中添加「」。

+0

請清楚 –

+0

電子郵件示例不包含「;」,因此所有文本都在一個元素中。在問題中,使用'String.Empty'比''''更清晰。 – Plutonix

+2

@Plutonix實際上,樣本包含一個「;」到底。 – Nath

回答

0

嘗試使用String.IsNullOrEmpty而不是你比較所以它會是這個樣子

For count As Integer = 0 to emailArray().Length - 1 
    If Not String.IsNullOrEmpty(emailArray(count)) Then 
    message.To.Add(emailArray(count)) 
    End If 
Next 
+0

我已經這樣做了。我也看看它的價值,它顯示「a」c。我不知道爲什麼。 – Nath

+0

嗨@bechbd,我用isNullorWhitespace代替IsNullOrEmpty。儘管我仍然接受了你的回答。謝謝。 – Nath

2

使用properString.Split

Dim results = email.split(new Char() { ";"c }, StringSplitOptions.RemoveEmptyEntries) 

一號線,而不是一個循環。更一般地說,使用.NET框架方法而不是VB傳統功能(即避免像Split(…)這樣的東西,而是使用String.Split來代替)。此外,使用For Each循環代替基於索引的循環。