如何在哈希表中添加范围?
How to AddRange in a HashTable?
HashTable list = new HashTable();
list.Add(1,"green");
list.Add(2,"blue");
list.Add(3,"red");
如何在HashTable中添加addrange等项?
虽然 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") });
同样,这是一个可以帮助您解决问题的快速示例,希望它足以让您继续前进。
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]);
HashTable list = new HashTable();
list.Add(1,"green");
list.Add(2,"blue");
list.Add(3,"red");
如何在HashTable中添加addrange等项?
虽然 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") });
同样,这是一个可以帮助您解决问题的快速示例,希望它足以让您继续前进。
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]);