Практическое руководство. Создание коллекции объектов (Visual Basic)
Как для любого объекта, сначала необходимо объявить переменную для хранения объекта, а затем создать объект коллекции и присвоить его переменной.
Для объекта коллекции можно использовать либо класс Collection, либо класс коллекции .NET Framework. В частности, можно создать generic коллекцию с помощью одного из классов в пространстве имен System.Collections.Generic. Универсальная коллекция применяется в том случае, если все элементы в коллекции имеют одинаковый тип данных. Универсальные коллекции используют strong typing, что позволяет добавлять только необходимые типы данных. Дополнительные сведения см. в разделе Практическое руководство. Определение типобезопасных коллекций (Visual Basic).
После создания объекта коллекции можно добавлять и удалять элементы, а также получать доступ к элементам коллекции.
Далее приведены два примера создания коллекций. Каждая коллекция содержит элементы String и связывает ключ String с каждым элементом. Первые две процедуры создают коллекцию с помощью класса коллекции Visual Basic. Последние две процедуры создают коллекцию с помощью класса универсальной коллекции .NET Framework.
Чтобы создать коллекцию с помощью класса коллекции Visual Basic
Объявите и создайте переменную Visual Basic Collection, как показано в следующем примере.
Dim sampleVisualBasicColl As New Microsoft.VisualBasic.Collection()
Коллекция в sampleVisualBasicColl может принимать элементы любого типа данных.
Метод Add используется для добавления элементов в коллекцию. В следующем примере создаются и добавляются в коллекцию четыре элемента String. Создается уникальное значение String в качестве ключа для каждого нового элемента и это значение передается методу Add.
Dim item1, item2, item3, item4 As String item1 = "Items" item2 = "In" item3 = "A" item4 = "Collection" sampleVisualBasicColl.Add(item1, "firstkey") sampleVisualBasicColl.Add(item2, "secondkey") sampleVisualBasicColl.Add(item3, "thirdkey") sampleVisualBasicColl.Add(item4, "fourthkey")
В коллекции Visual Basic аргумент Key является необязательным.
Если необходимо удалить элемент из коллекции, можно использовать метод Remove, который определяет элемент либо по его позиционному индексу, либо по его необязательному ключу. Это показано в приведенном ниже примере.
' Remove the first element of the Visual Basic collection. sampleVisualBasicColl.Remove(1) ' Remove the element with the key "secondkey". sampleVisualBasicColl.Remove("secondkey")
Следует отметить, что при удалении элемента из коллекции Visual Basic Collection значения индекса нумеруются заново от 1 до значения свойства Count.
Использование For Each... Next для обработки элементов коллекции Visual Basic
Объявите переменную типа, хранящегося в коллекции. Для предыдущего примера объявите переменную типа String как показано в следующем примере.
' Insert code from the preceding example. Dim aString As String
Оператор For Each... Next (Visual Basic) позволяет обработать каждый элемент коллекции. В следующем примере производится поиск конкретной строки и ее отображение в случае, если она найдена.
For Each aString in sampleVisualBasicColl If aString = "Collection" Then MsgBox(aString) End If Next aString
Для создания коллекции с помощью класса универсальной коллекции
Объявите и создайте переменную .NET Framework System.Collections.Generic.Dictionary<TKey, TValue>, как показано в следующем примере.
Dim sampleGenericColl As New System.Collections.Generic.Dictionary(Of String, String)
Переменная sampleGenericColl содержит type-safe коллекцию, которая принимает только элементы и ключи типа String.
Метод Dictionary<TKey, TValue>.Add используется для добавления элементов в коллекцию. В следующем примере создаются и добавляются в коллекцию четыре элемента String. Создается уникальное значение String в качестве ключа для каждого нового элемента и передается методу Add.
Dim item1, item2, item3, item4 As String item1 = "Items" item2 = "In" item3 = "A" item4 = "Collection" sampleGenericColl.Add("firstkey", item1) sampleGenericColl.Add("secondkey", item2) sampleGenericColl.Add("thirdkey", item3) sampleGenericColl.Add("fourthkey", item4)
В этой универсальной коллекции аргумент Key является обязательным.
Для удаления элемента из коллекции используется метод IDictionary<TKey, TValue>.Remove. Необходимо указать ключ для идентификации элемента, который требуется удалить. Это показано в приведенном ниже примере.
If Not sampleGenericColl.Remove("thirdkey") ' Insert code to handle "thirdkey" not found in collection. End If
Можно использовать оператор For Each...Next для создания цикла и обработки элементов коллекции, как показано в следующей процедуре.
Чтобы использовать оператор For Each...Next для обработки элементов универсальной коллекции
Объявите переменную типа, хранящегося в коллекции. Для предыдущего примера объявите переменную типа String как показано в следующем примере.
' Insert code from the preceding example. Dim aPair As KeyValuePair(Of String, String)
Оператор For Each... Next (Visual Basic) позволяет обработать каждый элемент коллекции. В следующем примере производится поиск конкретной строки и ее отображение в случае, если она найдена.
For Each aPair In sampleGenericColl If aPair.Value = "Items" Then MsgBox(aPair.Key & " -- " & aPair.Value) End If Next aPair
См. также
Задачи
Практическое руководство. Создание массива объектов (Visual Basic)