C# ArrayList、HashSet、HashTable、List、Dictionary的区别详解
在C#中,有多种容器类型可以用来存储和管理数据。常见的容器类型包括ArrayList、HashSet、HashTable、List和Dictionary。本文将详细讲解这些容器的区别和用法。
ArrayList
ArrayList是一种不需要定义类型的可变长度数组,它能够动态地存储和管理数据。ArrayList中的数据可以是不同类型的对象,因此ArrayList通常用于存储异构数据。
示例1
ArrayList list = new ArrayList();
list.Add("John");
list.Add(42);
list.Add(true);
foreach(var item in list)
{
Console.WriteLine(item);
}
示例2
ArrayList list = new ArrayList();
list.Add("John");
list.Add(42);
list.Add(true);
list.Insert(1, "Doe");
list.RemoveAt(2);
foreach(var item in list)
{
Console.WriteLine(item);
}
HashSet
HashSet是一种用于存储不重复元素的容器类型。 HashSet中的元素必须实现IEquatable接口。
示例
HashSet<int> set = new HashSet<int>();
set.Add(1);
set.Add(2);
set.Add(3);
set.Add(2);
foreach(var item in set)
{
Console.WriteLine(item);
}
输出结果为:
1
2
3
HashTable
HashTable是一种哈希表结构,它能够根据键值对存储和管理数据。它还可以根据键值找到对应的值,实现快速查找。
示例
Hashtable table = new Hashtable();
table.Add("John", 42);
table.Add("Mary", 37);
foreach(var key in table.Keys)
{
Console.WriteLine($"{key}: {table[key]}");
}
输出结果为:
John: 42
Mary: 37
List
List是一种可变长度数组,只能存储同一种类型的对象。 List支持基本的增删改查操作。
示例
List<int> list = new List<int>();
list.Add(1);
list.Add(2);
list.Add(3);
list.Insert(1, 4);
list.RemoveAt(2);
foreach(var item in list)
{
Console.WriteLine(item);
}
输出结果为:
1
4
3
Dictionary
Dictionary是一种哈希表结构,它也是根据键值对存储和管理数据。 与HashTable不同的是,Dictionary中的键和值必须具有相同的数据类型,且不允许重复键。
示例
Dictionary<string, int> dict = new Dictionary<string, int>();
dict.Add("John", 42);
dict.Add("Mary", 37);
foreach(var key in dict.Keys)
{
Console.WriteLine($"{key}: {dict[key]}");
}
输出结果为:
John: 42
Mary: 37
综上所述,以上五种容器类型各有特点,我们可以根据实际需求选择合适的容器来存储和管理数据。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# ArrayList、HashSet、HashTable、List、Dictionary的区别详解 - Python技术站