Как эффективно реализовать коллекцию Индекс-Значение

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 04.05.2006 (Чт) 16:49

Да собственно, выбирай из system.collections...
sortedlist, hashtable, stringdictionary...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Alex_2005
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 242
Зарегистрирован: 07.04.2005 (Чт) 17:09
Откуда: Germany, Baden-Wurttemberg, Bietigheim-Bissingen

Сообщение Alex_2005 » 04.05.2006 (Чт) 16:54

Код: Выделить всё

        oCol.Add("A", "1")
        oCol.Add("B", "2")
        oCol.Add("C", "3")
        '

        Debug.Print(oCol.Item("1"))
        Debug.Print(oCol.Item("2"))
        Debug.Print(oCol.Item("3"))


может я чего не так понял...
Guten Morgen! А если не Guten, то тогда это и не Morgen...

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 04.05.2006 (Чт) 17:53

Alex_2005 писал(а):
Код: Выделить всё

        oCol.Add("A", "1")
        oCol.Add("B", "2")
        oCol.Add("C", "3")
        '

        Debug.Print(oCol.Item("1"))
        Debug.Print(oCol.Item("2"))
        Debug.Print(oCol.Item("3"))


может я чего не так понял...


Причём, не только вопрос...))))))))))))
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Alex_2005
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 242
Зарегистрирован: 07.04.2005 (Чт) 17:09
Откуда: Germany, Baden-Wurttemberg, Bietigheim-Bissingen

Сообщение Alex_2005 » 04.05.2006 (Чт) 18:07

так о чём речь??? что - то не могу въехать... :? :?:
Guten Morgen! А если не Guten, то тогда это и не Morgen...

Alex_2005
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 242
Зарегистрирован: 07.04.2005 (Чт) 17:09
Откуда: Germany, Baden-Wurttemberg, Bietigheim-Bissingen

Сообщение Alex_2005 » 04.05.2006 (Чт) 18:20

э поясните, плиз, что мы сейчас тут обсуждали? а то в друг мне тоже пригодиться!! :o
Guten Morgen! А если не Guten, то тогда это и не Morgen...

temur
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.02.2005 (Чт) 21:17
Откуда: Georgia

Сообщение temur » 12.05.2006 (Пт) 14:37

Код: Выделить всё
        Dim CL01 As New Collections.Hashtable
        CL01.Add("1", "qwerfwq1")
        CL01.Add("2", "qwerfwq2")
        CL01.Add("3", "qwerfwq3")
        CL01.Add("4", "qwerfwq4")
        CL01.Add("5", "qwerfwq5")
        Dim DEntry As New DictionaryEntry
        For Each DEntry In CL01
            If Equals(DEntry.Key, "5") Then
                Me.lblTest01.Text = DEntry.Key
                Me.lblTest02.Text = DEntry.Value
                Exit For
            End If
        Next

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 12.05.2006 (Пт) 17:52

temur
Ты правда думаешь, что этот код имеет какое-то отношение к оптимальности?
Хуже могло бы быть только отсутствие exit for, но даже при его наличии это вопиющий misusing коллекции.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

temur
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.02.2005 (Чт) 21:17
Откуда: Georgia

Сообщение temur » 12.05.2006 (Пт) 18:00

Ну я немного не дочитал вопрос
Вариант с перебором массива ключей не предлагать
Последний раз редактировалось temur 12.05.2006 (Пт) 18:09, всего редактировалось 1 раз.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 12.05.2006 (Пт) 18:09

Вроде нет - т.е. типа не misusing?

Допустим, есть задача вывести девятый элемент массива.
Код: Выделить всё
Dim arr(10) as integer

for i as integer = 0 to 10
  if i=9 then
    console.writeline(arr(i))
    exit for
  end if
next


Крутой код?
Твой один в один с ним.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

temur
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.02.2005 (Чт) 21:17
Откуда: Georgia

Сообщение temur » 12.05.2006 (Пт) 18:12

Да ладно не совсем такой.... :-)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 12.05.2006 (Пт) 18:16

В точности такой.
С той лишь разницей, что твой будет работать ещё медленнее.
Так нельзя. RTFM.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

temur
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.02.2005 (Чт) 21:17
Откуда: Georgia

Сообщение temur » 12.05.2006 (Пт) 18:22

Ошибся, бывает.
Так устроит?

Код: Выделить всё
  Dim CL01 As New Collections.Hashtable
        CL01.Add("1", "qwerfwq1")
        CL01.Add("2", "qwerfwq2")
        CL01.Add("3", "qwerfwq3")
        CL01.Add("4", "qwerfwq4")
        CL01.Add("5", "qwerfwq5")

        Me.lblTest01.Text = "5"
        Me.lblTest02.Text =  CL01("5")
Последний раз редактировалось temur 12.05.2006 (Пт) 18:29, всего редактировалось 1 раз.


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 92

    TopList