2011-02-23 13 views
1

我想循環訪問我的數據表列SDESCR並創建一個看起來像這樣的字符串。循環通過數據表來創建一個看起來像這樣的字符串

Dim labels As String() = {"North", "South", "East", "West", "Up", "Down"} 

這就是我試圖和它不工作

Dim labels As String() 
For Each row As DataRow In tablegraph.Rows 
      labels = labels " ' " + row.Item("SDESCR") + " '," 
     Next row 

感謝你的幫助,我會測試他們明天看哪個效果最好,MARK ONE正確的。

+3

'labels'不是一個字符串而是一個String數組。 – 2011-02-23 22:03:04

+0

你是什麼意思「它不工作」?你有錯誤嗎?你會得到輸出,但輸出錯誤嗎?另外,我認爲這是一種類型,但你有'標籤''',我假定你的意思是'標籤+'''''。 – 2011-02-23 22:04:46

回答

2

做到這一點,而不是

Dim labels As String() 
Dim labelsList As List(Of String) = New List(Of String) 
For Each row As DataRow In tablegraph.Rows 
    labelsList.Add(row.Item("SDESCR")) 
Next 

labels = labelsList.ToArray() 

如果你需要它是一個逗號分隔的列表,而不是你可以做

Dim commaLabels As String = String.Join(labels, ",") 
0
labels = labels " ' " + row.Item("SDESCR") + " '," 
      ^

加號丟失? 另外,當你這樣做時,你會在字符串的末尾留下額外的,。所以你會想剝去它。

+0

如果我添加一個加號,我得到一個錯誤其錯誤運算符'+'沒有爲類型'字符串'和'字符串'的一維數組定義。 – MyHeadHurts 2011-02-23 22:05:46

1

如果你需要它們存儲在數組中,那麼你可以將它們添加到一個列表,然後調用列表上的ToArray的()方法:

Dim labelList As New List(Of String) 
    For Each row As DataRow In tablegraph.Rows 
     labelList.Add(row.Item("SDESCR")) 
    Next row 

    Dim labels As String() = labelList.ToArray() 
1

如果你的意思是一個String數組,而不是一個字符串,TH是的作品:

Dim labels(tablegraph.Rows.Count - 1) As String 
For i As Int32 = 0 To tablegraph.Rows.Count - 1 
    labels(i) = tablegraph(i)("SDESCR").ToString 
Next 

如果你想用逗號將它們分開,你可以使用StringBuilder追加:

Dim labels As New System.Text.StringBuilder 
For i As Int32 = 0 To tablegraph.Rows.Count - 1 
    labels.Append(" ' ").Append(tablegraph(i)("SDESCR").ToString).Append(" ',") 
Next 
If labels.Length <> 0 Then labels.Length -= 1 'remove last comma' 
Dim labelString As String = labels.ToString 
1

如果你想有一個字符串,用這個(字符串生成器是最好的,由於內存管理問題與常量字符串聲明。

Dim labels As New StringBuilder() 
For Each row As DataRow In tablegraph.Rows 
      labels.Append(" ' " + row.Item("SDESCR") + " ',") 
     Next row 

然後,當你需要的字符串,使用labels.ToString()

如果你想要一個數組,當你需要的陣列,使用用這個...

Dim labels As New List(Of String)() 
For Each row As DataRow In tablegraph.Rows 
      labels.Add(row.Item("SDESCR")) 
     Next row 

然後ToArray()

上面的代碼失敗的主要原因是您正在聲明一個字符串數組。

1

有很多方法可以做到這一點;這裏是使用LINQ

Dim labels As String() = (From myRow In tablegraph _ 
          Select CType(myRow.Item("SDESCR"), String)).ToArray 
  • 值得什麼,這會爲「SDESCR」的空/ NOTHING值失敗的方法。

如果你只是想要一個逗號分隔值,你可以這樣做:

Dim sOutput = String.Join(",", (From myRow In tablegraph _ 
           Select CType(myRow.Item("SDESCR"), String)).ToArray) 
相關問題