簡體   English   中英

vb.net將數組元素轉換為字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM