Vb.net 是否可以在列表项上添加某种标识?

Vb.net 是否可以在列表项上添加某种标识?,vb.net,winforms,list,Vb.net,Winforms,List,我只是好奇,是否有可能收集一个数据列表并将其放入列表或数组中,然后在列表中的每个项目上使用一些变量(比如控件上的标记属性)而不是使用索引轻松地将其取出。例如,如果我在表单上有许多控件,并且希望使用列表填充值,但不必交叉检查许多不同的标记(这将花费很多时间),我可以将标签分配给列表项的某个“类似标记”的变量 这可能吗?我会使用一个对象,这样您就可以使用一个键轻松引用数据。我会使用一个对象,这样您就可以使用一个键轻松引用数据。您可以使用LINQ: Dim myTagControls = From c

我只是好奇,是否有可能收集一个数据列表并将其放入列表或数组中,然后在列表中的每个项目上使用一些变量(比如控件上的标记属性)而不是使用索引轻松地将其取出。例如,如果我在表单上有许多控件,并且希望使用列表填充值,但不必交叉检查许多不同的标记(这将花费很多时间),我可以将标签分配给列表项的某个“类似标记”的变量

这可能吗?

我会使用一个对象,这样您就可以使用一个键轻松引用数据。

我会使用一个对象,这样您就可以使用一个键轻松引用数据。

您可以使用LINQ:

Dim myTagControls = From ctrl In Me.Controls.Cast(Of Control)()
                    Where "your-tag".Equals(ctrl.Tag)

For Each ctrl In myTagControls
    Console.WriteLine("Tag:{0} Name:{1}", ctrl.Tag, ctrl.Name)
Next
您可以使用LINQ:

Dim myTagControls = From ctrl In Me.Controls.Cast(Of Control)()
                    Where "your-tag".Equals(ctrl.Tag)

For Each ctrl In myTagControls
    Console.WriteLine("Tag:{0} Name:{1}", ctrl.Tag, ctrl.Name)
Next

NET中的列表,例如
List(Of T)
类,只支持每个项存储一个对象。然而,它们的美妙之处在于,您可以存储任何类型的对象。如果需要将元数据与数据一起存储,只需创建一个新类来保存每个项的所有数据。例如:

Public Class MyControlData
    Public Property LabelText As String
    Public Property Value As String
End Class
然后,您可以将项目添加到列表中,如下所示:

Dim dataList As New List(Of MyControlData)()
Dim item As New MyControlData()
item.LabelText = "Name"
item.Value = "Bob"
dataList.Add(item)
For Each i As MyControlData in dataList
    Label1.Text = i.LabelText
    TextBox1.Text = i.Value
Next
您可以从列表中读取如下数据:

Dim dataList As New List(Of MyControlData)()
Dim item As New MyControlData()
item.LabelText = "Name"
item.Value = "Bob"
dataList.Add(item)
For Each i As MyControlData in dataList
    Label1.Text = i.LabelText
    TextBox1.Text = i.Value
Next

NET中的列表,例如
List(Of T)
类,只支持每个项存储一个对象。然而,它们的美妙之处在于,您可以存储任何类型的对象。如果需要将元数据与数据一起存储,只需创建一个新类来保存每个项的所有数据。例如:

Public Class MyControlData
    Public Property LabelText As String
    Public Property Value As String
End Class
然后,您可以将项目添加到列表中,如下所示:

Dim dataList As New List(Of MyControlData)()
Dim item As New MyControlData()
item.LabelText = "Name"
item.Value = "Bob"
dataList.Add(item)
For Each i As MyControlData in dataList
    Label1.Text = i.LabelText
    TextBox1.Text = i.Value
Next
您可以从列表中读取如下数据:

Dim dataList As New List(Of MyControlData)()
Dim item As New MyControlData()
item.LabelText = "Name"
item.Value = "Bob"
dataList.Add(item)
For Each i As MyControlData in dataList
    Label1.Text = i.LabelText
    TextBox1.Text = i.Value
Next