[英]vb.net convert array element into string
使用下面的代碼循環遍歷我的數組,該數組是通過讀取其中包含約10行的文本文件而創建的,因此數組中的所有內容都是來自文本文件的那些行之一
Dim myarray As Array
myarray = Split(stringfromtextfile, vbCrLf)
For each element in myArray
MgBox(element)
Dim splititem As String = Split(element, "\")
該消息框按預期顯示了該行,但是當我嘗試將其拆分時,我只會收到錯誤:
錯誤1無法將類型“字符串的一維數組”的值轉換為“字符串”。
如何獲取消息框中顯示的值轉換為字符串,然后可以對其進行拆分?
干杯!
這行代碼無效:
Dim splititem As String = Split(element, "\")
Split
函數返回一個字符串數組,但是您嘗試將結果分配給僅表示單個字符串的變量。
這就是錯誤消息告訴您的內容: Split
函數返回的是“類型'String的一維數組'的值”,並且為了將其存儲在其中,“無法將其轉換為'String'” splititem
變量。
對其進行更改,使其看起來像這樣(請注意括號,它表示String的數組 ):
Dim splititem As String() = Split(element, "\")
並強烈考慮使用.NET Framework方法進行字符串操作,而不要使用舊的VB 6方法。 提供它們主要是為了與舊代碼兼容,而不是要在新代碼中使用。
如果您實際上是在編寫VB 6代碼(看起來像這樣),而不是在編寫VB.NET代碼,則不能在變量聲明時分配變量。 您需要將這些分解為單獨的語句:
Dim splititem As String()
splititem = Split(element, "\")
我將使用.NET方法代替不是強類型的VB6方法,因此效率較低,而且更重要的是,容易出錯且可讀性較低。
例如,使用LINQ:
Dim first10LineFields = From line In System.IO.File.ReadLines(path)
Let fields = line.Split("\"c)
Select fields
Take 10
輸出:
For Each lineFields As String() In first10LineFields
Dim fieldsCommaSeparated = String.Join(",", lineFields)
MessageBox.Show(fieldsCommaSeparated)
Next
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.