hashtable в asp.net - PullRequest
       4

hashtable в asp.net

1 голос
/ 23 июля 2011

1.Я хочу отобразить каждую запись хеш-таблицы в метке, но я не могу подать заявку на каждый цикл в хеш-таблице.
2. почему мы используем хеш-таблицу вместо таблицы данных.

int key;
string name = string.Empty;
string str = string.Empty;

Hashtable hashtable = new Hashtable();
key = 1;
name = "A";
hashtable.Add(key,name);
key = 2;
name = "B";
hashtable.Add(key,name);
key = 3;
name = "lily";
hashtable.Add(key,name);

Ответы [ 3 ]

3 голосов
/ 23 июля 2011

Re 2: в .NET 2.0 и выше действительно нет смысла использовать Hashtable здесь, если у вас нет конкретной причины (такой как семантика блокировки).Однако DataTable еще менее желателен (ИМО).Лучшей заменой будет Dictionary<int,string> - или если ключи всегда 1,2,3, ... может быть просто string[] и смещены на единицу.

Со словарем вы получите KeyValuePair<TKey,TValue>в foreach, т. е.

foreach(var pair in data) {
    int key = pair.Key;
    string value = pair.Value;
    //...
}
2 голосов
/ 23 июля 2011

1) я не могу подать заявку на каждый цикл в хеш-таблице

foreach (string key in hashtable.Keys)   {     
    Response.Write(key + '=' + hashtable[key] + "<br>");   
}

2) почему мы используем хеш-таблицу вместо таблицы данных.

Поиск с использованием хеш-таблицы выполняется быстрее.

Используйте хэш-таблицу, если поиск является приоритетным.Хеш-таблицы обеспечивают очень быстрый механизм поиска при поиске по ключу и довольно хороший поиск при поиске по значению
Используйте хеш-таблицу, если вы хотите иметь возможность удалять определенные элементы (используйте метод Remove)
Используйте хеш-таблицукогда порядок хранения элементов не имеет к вам отношения
Не используйте хеш-таблицу, если вам нужны элементы в каком-то определенном порядке.Вы не можете полагаться на то, как Hashtable будет сортировать свои элементы
Не используйте хеш-таблицу, если вам нужно вставить элемент в определенном месте
Не используйте хеш-таблицу, если вы хотите хранить несколько ключей стакое же значение.Все ключи в хеш-таблице должны быть уникальными
[ ссылка ]

1 голос
/ 23 июля 2011

Если вы хотите перебрать его, вы можете перебрать только значения:

foreach(var value in hashtable.Values)
{
}

Что касается того, почему используется Hashtable, а не DataTable, DataTable является более богатым с точки зрения функциональности и более тяжелым с точки зрения памяти и накладных расходов на обработку.

Однако я бы сказал, что, поскольку Hashtable не является строго типизированным, в наши дни более обычным является использование универсальной коллекции, такой как Dictionary.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...