Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Hashtable в C#: хранение ключ-значение, операции и практические примеры

Что такое Hashtable в C#?

Hashtable — не-дженерик коллекция, хранящая данные в виде пар ключ-значение. В отличие от массивов или списков, хранящих одно значение на индекс, хеш-таблица позволяет получать значение напрямую по уникальному ключу, обеспечивая O(1) среднее время поиска.

Типичные записи выглядят так:

{ "001", ".Net" }
{ "002", "C#" }
{ "003", "ASP.Net" }

Здесь ключи — "001", "002", "003", а соответствующие значения — ".Net", "C#", "ASP.Net".

Ниже мы рассмотрим самые частые операции с Hashtable.

Объявление Hashtable

Инстанцируйте хеш-таблицу с типом Hashtable и ключевым словом new:

Hashtable ht = new Hashtable();

Добавление элементов

Используйте метод Add для вставки пары ключ-значение. И ключ, и значение должны быть указаны:

ht.Add("001", ".Net");
ht.Add("002", "C#");
ht.Add("003", "ASP.Net");

Пример 1 – Отображение всех значений

Следующее консольное приложение демонстрирует создание хеш-таблицы, заполнение её и печать каждого значения:

Hashtable в C#: хранение ключ-значение, операции и практические примеры

using System;
using System.Collections;
namespace DemoApplication {
    class Program {
        static void Main(string[] args) {
            Hashtable ht = new Hashtable();
            ht.Add("001", ".Net");
            ht.Add("002", "C#");
            ht.Add("003", "ASP.Net");
            ICollection keys = ht.Keys;
            foreach (String k in keys) {
                Console.WriteLine(ht[k]);
            }
            Console.ReadKey();
        }
    }
}

Пояснение

  1. Объявляем переменную Hashtable с именем ht.
  2. Добавляем пары ключ-значение через Add.
  3. Получаем коллекцию ключей через ht.Keys (возвращает ICollection).
  4. Итерируем по ключам и выводим ассоциированное значение через ht[key].

Запуск программы выводит:

Hashtable в C#: хранение ключ-значение, операции и практические примеры

Частые методы

ContainsKey

Проверяет наличие конкретного ключа:

ht.ContainsKey("001"); // возвращает true, если ключ присутствует

ContainsValue

Проверяет, хранится ли конкретное значение в хеш-таблице:

ht.ContainsValue("C#"); // возвращает true, если значение найдено

Пример 2 – Использование ContainsKey и ContainsValue

Ниже краткая программа, демонстрирующая оба метода:

Hashtable в C#: хранение ключ-значение, операции и практические примеры

using System;
using System.Collections;
namespace DemoApplication {
    class Program {
        static void Main(string[] args) {
            Hashtable ht = new Hashtable();
            ht.Add("001", ".Net");
            ht.Add("002", "C#");
            ht.Add("003", "ASP.Net");
            Console.WriteLine(ht.ContainsKey("001")); // true
            Console.WriteLine(ht.ContainsValue("C#")); // true
            Console.ReadKey();
        }
    }
}

Пояснение

  1. ContainsKey подтверждает наличие "001".
  2. ContainsValue подтверждает, что "C#" сохранено.

Консоль отображает:

Hashtable в C#: хранение ключ-значение, операции и практические примеры

Ключевые выводы

Hashtable хранит элементы как пары ключ-значение, обеспечивая быстрый поиск при известном ключе. Хотя дженерик Dictionary<TKey, TValue> рекомендуется для типовой безопасности в современном C#, понимание Hashtable остаётся ценным для legacy-кода и сценариев взаимодействия.

Язык C

  1. Выражения, операторы и блоки в C#: подробное руководство с примерами
  2. Цикл do-while в C++: синтаксис, примеры и вложенные циклы
  3. Указатели в C++: концепции, примеры и практические применения
  4. Тип данных char в C++: объявление, ASCII и методы преобразования
  5. Перегрузка операторов в C++: практическое руководство с примерами кода
  6. Функции в C++: подробное объяснение с практическими примерами кода
  7. Коллекции в C#: практическое руководство с реальными примерами
  8. Мастерство метода str.count() в Python: как подсчитывать символы и подстроки с примерами
  9. Функция round() в Python: подробное объяснение с практическими примерами
  10. Освоение функции map() в Python: синтаксис, примеры и лучшие практики