📅  最后修改于: 2023-12-03 15:00:14.857000             🧑  作者: Mango
在C#中,我们有多种数据结构可以表示一组元素。本文将重点介绍SortedSet和HashSet,以及如何取它们的并集。
SortedSet是一个有序不重复元素的集合。它的特性是自动根据元素的大小进行排序。
SortedSet<int> set1 = new SortedSet<int> { 1, 2, 3, 4 };
SortedSet<int> set2 = new SortedSet<int> { 4, 5, 6, 7 };
foreach (var item in set1.Union(set2))
{
Console.WriteLine(item);
}
输出结果:
1
2
3
4
5
6
7
SortedSet继承自IEnumerable
HashSet是一个无序不重复元素的集合。它的底层实现是哈希表,因此它的添加、删除、查询等操作的时间复杂度为O(1)。
HashSet<int> set1 = new HashSet<int> { 1, 2, 3, 4 };
HashSet<int> set2 = new HashSet<int> { 4, 5, 6, 7 };
foreach (var item in set1.Union(set2))
{
Console.WriteLine(item);
}
输出结果:
1
2
3
4
5
6
7
HashSet继承自IEnumerable
取两个集合的并集,可以使用LINQ库提供的Union方法。如上述代码中所示,可以将两个集合分别调用Union方法取并集,然后使用foreach遍历结果。
在SortedSet和HashSet中,都有自己的Union方法可供使用,用法与LINQ库提供的Union方法类似。对于SortedSet和HashSet中的元素类型,必须实现IComparable接口来确保在排序时使用比较方法。
SortedSet<int> set1 = new SortedSet<int> { 1, 2, 3, 4 };
SortedSet<int> set2 = new SortedSet<int> { 4, 5, 6, 7 };
foreach (var item in set1.Union(set2))
{
Console.WriteLine(item);
}
输出结果:
1
2
3
4
5
6
7