Ассоциативные массивы

  • Автор темы Bloodius Baggins
  • Дата начала
Статус
Закрыто для дальнейших ответов.
B

Bloodius Baggins

Гость
#1
Есть ли они уже готовые в VB.NET?
А если нет, то кто-нибудь занимался их реализацией?
 
B

Bloodius Baggins

Гость
#2
Вот... написал чего-то...
В архиве библиотечка и текстовый файл-ридми с описанием.
Да не озлятся на меня товарищи модераторы-администраторы за то, что кидаю сюда, а не в Авторское ПО - все-таки продукт еще не готов :)
Прошу смотреть, советовать, критиковать (пжлст конструктивно ;))

IntHash.zip @ Box.net
 
B

Bloodius Baggins

Гость
#3
Новая версия, исправленная и дополненная (как водится :D)
Добавил метод для переприсваивания значений элементам и оформил для любого типа данных.

Hash.zip @ Box.net

З.Ы. Кто-нить вообще смотрел?.. :P
 
D

Dottik

Гость
#5
А чем вам не подходят стандартные
Dictionary<,>
Hashtable
?


упс, VB.NET
повторюсь, в C# есть готовые Dictionary<,> Hashtable, если в VB нету, то на их основе можна легко написать ClassLibrary под VB
 
B

Bloodius Baggins

Гость
#6
Всем подходят, за исключением того, что я пока не знаю C# :angry:

Как только познакомлюсь с ним, сразу же перепишу класс с их использованием.
 
B

Bloodius Baggins

Гость
#7
Добавил в этой версии индексер (дефолтовое свойство Item), поэтому больше нет методов Value() и SetVal(). Теперь к элементу хэша можно обратиться строкой
Код:
value = hash("Key")
и присвоить ему значение таким же самым образом (ну, только операнды местами поменять :blink:)
Если элемента с таким ключом нет, то он не добавится, а свойство выдаст ошибку или вернет Nothing

Hash_4.zip @ Box.net

Очень надеюсь, что это-таки последняя версия ;)
Разве что перепишу это все на C#
 
P

Pasha

Гость
#8
Хм. так а чем все-таки не понравились System.Collection.Hashtable и System.Collections.Generic.Dictionary(Of TKey, TValue)? Вот пример использования, прямо из MSDN, на VB.NET:
Код:
' Create a new dictionary of strings, with string keys.
'
Dim openWith As New Dictionary(Of String, String)

' Add some elements to the dictionary. There are no 
' duplicate keys, but some of the values are duplicates.
openWith.Add("txt", "notepad.exe")
openWith.Add("bmp", "paint.exe")
openWith.Add("dib", "paint.exe")
openWith.Add("rtf", "wordpad.exe")

' The Add method throws an exception if the new key is 
' already in the dictionary.
Try
openWith.Add("txt", "winword.exe")
Catch 
Console.WriteLine("An element with Key = ""txt"" already exists.")
End Try
 
B

Bloodius Baggins

Гость
#9
;) Гм...
Спасибо. Впредь буду лучше курить МСДН :))
Правда, вовремя ;) Я уже свой написать успел... Ну да ладно.
 
Статус
Закрыто для дальнейших ответов.