【问题标题】:Concatenating two variables into a single variable将两个变量连接成一个变量
【发布时间】:2014-05-08 04:25:57
【问题描述】:

我正在加载一个 txt 文件,我可以使用 split 函数将每一行拆分为一个数组(使用“|”作为分隔符)。

但是,每一行在数组中都有不同数量的元素,所以我不能制作二维数组。

我希望能够以某种方式将文本字符串和整数组合成一个新变量。

    Dim i As Integer = 0

    Dim "row" & i As String = StringinRowi

给予

row0 = StringinRow0

然后循环这个文本文件中的行数(我想通了)

这可能吗?

【问题讨论】:

  • 我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
  • 您已经将 i 声明为整数并重新定义为字符串?
  • 不,不是你想要的方式。
  • 您能提供一个文本文件中的数据样本吗?

标签: arrays vb.net concatenation


【解决方案1】:

2D 数组可能不起作用,但 2D 列表会起作用。声明列表,

Dim data As New List(Of List(Of String))

然后将拆分返回 .ToList。

data.Add(readlinestring.Split("|"c).ToList)

现在每一行都将是data 的索引,并且将包含一个也被索引的字符串列表。 由于所有内容都已编入索引,因此无需使用编号变量。

【讨论】:

    【解决方案2】:

    使用DataTable。他们太棒了。

    Imports System.IO
    
    Public Class Form1
    
      Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim dtbData As New DataTable
    
        Dim strFilename As String = "C:\Junk\Junk.txt"
        Using sr As New StreamReader(strFilename)
          Do Until sr.EndOfStream
            Dim strLine As String = sr.ReadLine()
            Dim strFields() As String = Split(strLine, "|")
            For i As Integer = dtbData.Columns.Count To strFields.GetUpperBound(0) 'add new columns if necessary
              dtbData.Columns.Add("Column" + i.ToString)
            Next i
            dtbData.Rows.Add(strFields)
          Loop
          MsgBox("Row 2 Column 1 = " & dtbData.Rows(1).Item("Column1").ToString)
        End Using
    
      End Sub
    End Class
    

    【讨论】:

    • 如果您愿意,可以只使用整数值而不是 "Column1"。请记住从0 开始计数,而不是1
    • 最好使用Do Until sr.EndOfStream Loop 而不是每次都检查字符串
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 2017-02-20
    • 2014-10-03
    • 1970-01-01
    • 1970-01-01
    • 2011-11-30
    相关资源
    最近更新 更多