0

データのリストを収集してリストまたは配列に配置し、インデックスを使用するのではなく、リスト内の各項目で変数 (コントロールのタグ プロパティなど) を使用して簡単に引き出すことができるかどうかに興味があります。例は、フォームに多くのコントロールがあり、リストを使用して値を入力したいが、多くの異なるインデックスをクロスチェックする必要がある (時間がかかる) 代わりに、ラベルをいくつかに割り当てることができる場合です。リスト項目の「tag like」変数。

これは可能ですか?

4

3 に答える 3

1

クラスなどの .NET のリストは、List(Of T)アイテムごとに 1 つのオブジェクトの格納のみをサポートします。ただし、それらの美しさは、必要なあらゆるタイプのオブジェクトを格納できることです。データとともにメタデータを保存する必要がある場合は、各アイテムのすべてのデータを保持する新しいクラスを作成するだけです。例えば:

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 に答える
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

キーを使用してデータを簡単に参照できるように、Dictionaryオブジェクトを使用します。

于 2013-08-27T15:22:16.223 に答える