Обсуждение:Ассоциативный массив

Последнее сообщение: 5 лет назад от 89.179.126.100 в теме «Раздел "Примеры"»

Начиная с 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)Ответить