Как добавить диапазон в HashTable? - PullRequest
0 голосов
/ 15 мая 2019
HashTable list = new HashTable();
list.Add(1,"green");
list.Add(2,"blue");
list.Add(3,"red");

Как добавить эти элементы, такие как addrange, в HashTable?

Ответы [ 2 ]

1 голос
/ 16 мая 2019
    Hashtable list = new Hashtable
    {
        {1, "green"}, {2, "blue"}, {3, "red"}
    };

    // ICollection for keys 
    ICollection collection = list.Keys;

    // Write all
    foreach (var myList in collection)
        Console.WriteLine(myList + " - " + list[myList]);
1 голос
/ 15 мая 2019

Хотя для HashTable нет AddRange, вы могли бы создать расширение, по крайней мере имитирующее поведение AddRange. Это быстрый ответ, который, как мы надеемся, поможет вам двигаться вперед, отнюдь не лучшая реализация, поскольку есть другие альтернативы.

Вот пример расширения -

 public static void AddRange<T, K>(this Hashtable hash, IEnumerable<KeyValuePair<T,K>> ikv)
 {
     foreach(KeyValuePair<T, K> kvp in ikv)
     {
        if (!hash.ContainsKey(kvp.Key))
        {
           hash.Add(kvp.Key, kvp.Value);                    
        }                
     }
 }

Вот один из способов, которым вы можете его использовать -

Hashtable list = new Hashtable();
list.AddRange(new[] { new KeyValuePair<int, string>(1,"green"), new KeyValuePair<int, string>(2,"blue"), new KeyValuePair<int, string>(3,"red") });

Опять же, это был быстрый пример, чтобы помочь вам, надеюсь, этого достаточно, чтобы вы пошли.

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