将List(Of String)数组转换/创建为类或函数

时间:2014-03-24 02:20:52

标签: arrays vb.net winforms list

我有这个代码来分阶段文本文件,格式化它,然后为每个新行创建一个List(Of String)。现在我想做的是从List(Of String)中创建一个类,这样它就可以从程序中的任何地方访问,并且能够传递一个整数参数,它应该返回整数索引的字符串值列表(字符串)。 (我想不确定这是不是正确的做法?)有点混乱**

所以例如: 说我有以下

     Dim gcodelist As New List(Of String)

    Dim lines As String() = TextBox1.Text.Split(New String() {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries)
    For Each l As String In lines
        gcodelist.Add(l)
    Next

我希望能够将该代码转换为类,以便在Main sub()中我可以调用例如

   Sub Main() 
   MsgBox(Gcodeblock(5))
   End Sub

它应该将List(Of String)数组的gcodelist(5)打印到msg框

1 个答案:

答案 0 :(得分:1)

使用索引器('Item'方法)创建一个Gcodeblock类:

Public Class Gcodeblock
    Private gcodelist As New List(Of String)

    Public Sub New(ByVal text As String)
        Dim lines As String() = text.Split(New String() {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries)
        For Each l As String In lines
            gcodelist.Add(l)
        Next
    End Sub

    Default Public ReadOnly Property Item(ByVal index As Integer) As String
        Get
            Return gcodelist(index)
        End Get
    End Property
End Class

并像这样使用它:

Dim GcodeblockInstance = New Gcodeblock(yourText)
MsgBox(GcodeblockInstance(0))

我的示例使用只读索引器,但没有理由让它无法写入(删除'ReadOnly'关键字并添加'Set'块)。

或者您可以从List(Of String)继承:

Public Class Gcodeblock
    Inherits List(Of String)

    Public Sub New(ByVal text As String)
        Dim lines As String() = text.Split(New String() {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries)
        For Each l As String In lines
            MyBase.Add(l)
        Next
    End Sub
End Class