0

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

这可能吗?

4

3 回答 3

1

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

于 2013-08-27T15:22:16.223 回答
1

您可以使用 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
于 2013-08-27T15:24:18.360 回答
1

.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
于 2013-08-27T15:57:38.233 回答