Обсуждение:Ассоциативный массив
Эта статья тематически связана с вики-проектом «Информационные технологии», цель которого — создание и улучшение статей по темам, связанным с информационными технологиями. Вы можете её отредактировать, а также присоединиться к проекту, принять участие в его обсуждении.
Статью ещё никто не оценил по шкале оценок проекта |
Начиная с Delphi 2009 (вроде бы) можно использовать генерик TDictionary<Key,Value> --Faiwer 07:03, 6 октября 2010 (UTC)Ответить[ответить]
Примеры кода на VBScript(VBA) и VB.NETПравить
Весь приведённый код протестирован. С вики-разметкой не достаточно знаком, буду благодарен если более опытные редакторы добавят информацию по COM и VB.NET.
VBScript/JScript/VBA для работы с ассоциативным массивом используется COM объект Scripting.Dictionary. Пример на VBScript:
Dim Dic
Set Dic = Createobject("Scripting.Dictionary")
Dic.Add "sbl.spamhaus.org", "SBL Spamhaus"
Dic.Add "xbl.spamhaus.org", "XBL Spamhaus"
Dic.Add "pbl.spamhaus.org", "PBL Spamhaus"
Dim key
For Each key In Dic.Keys 'перебор словаря
wscript.echo Dic(key)
Next
Dim keys, items
keys = Dic.Keys 'получение списка ключей в виде массива
items = Dic.Items 'получение списка значений в виде массива
If Dic.Exists("pbl.spamhaus.org") Then
Dic.Remove("pbl.spamhaus.org") 'удаление пары ключ-значение
End If
Dic.RemoveAll 'удаление всех элементов словаря
В VB.NET для работы с ассоциативным массивом используется класс Hashtable:
Dim Dic As New Hashtable
Dic.Add("sbl.spamhaus.org", "SBL Spamhaus")
Dic.Add("xbl.spamhaus.org", "XBL Spamhaus")
Dic.Add("pbl.spamhaus.org", "PBL Spamhaus")
Dim pair As DictionaryEntry
For Each pair In Dic 'перебор словаря
Debug.Print(pair.Key)
Debug.Print(pair.Value)
Next
Dim keys, items
keys = Dic.Keys 'получение списка ключей в виде массива
items = Dic.Values 'получение списка значений в виде массива
If Dic.ContainsKey("pbl.spamhaus.org") Or Dic.ContainsValue("PBL Spamhaus") Then
Dic.Remove("pbl.spamhaus.org") 'удаление пары ключ-значение
End If
Dic.Clear() 'удаление всех элементов словаря
212.48.34.146 06:45, 9 февраля 2016 (UTC)Ответить[ответить]
Раздел "Примеры"Править
"Примером ассоциативного массива является телефонный справочник. Ключом в данном случае является совокупность «Ф. И. О. + адрес», а значением — номер телефона. Один номер телефона имеет одного владельца, но один человек может иметь несколько номеров."
Считаю, что фраза "Один номер телефона имеет одного владельца, но один человек может иметь несколько номеров." может сложить ложный вывод у начинающего читателя, что якобы значения в ассоциативном массиве должны быть уникальны. 89.179.126.100 09:40, 13 декабря 2018 (UTC)Ответить[ответить]