转载于:http://www.importnew.com/6931.html


HashSet<T>类主要是设计用来做高性能集运算的,例如对两个集合求交集、并集、差集等。集合中包含一组不重复出现且无特性顺序的元素。

HashSet<T>的一些特性如下:

1、HashSet<T>中的值不能重复且没有顺序。

2、HashSet<T>的容量会按需自动添加。

构造方法:

HashSet() 默认相等比较器创建一个空的新实例。

HashSet(IEnumerable<T> collection)  把指定集合中的collection中的数据复制到集中

HashSet(IEqualityComparer<T> comparer)  使用指定的相等比较器创建一个空的新实例

HashSet(IEnumerable<T> collection,IEqualityComparer<T> comparer)  使用指定的比较器实例化数据,且将指定集合中的元素复制到集合中。

因为HashSet<T>是专门设计来做集合运算的,因此它提供的方法中有不少是和集合运算相关的。

以下给出它的一些常用方法介绍

成员        类型        说明

Add        方法        将指定的元素添加到集合中

Clear        方法         清空集合中的所有元素

Contains        方法         确定某元素是否在HashSet<T>中

Exists        方法         确定HashSet<T>是否包含于指定条件相匹配的元素

ExceptWith    方法         从当前HashSet<T>移除指定集合中的所有元素

IntersectWith     方法        修改当前的HashSet<T>对象,以仅包含该对象和指定集合中存在的元素

IsProperSubsetOf  方法        确定HashSet<T>对象是否为指定集合的真子集

IsProperSupersetOf 方法        确定HashSet<T>对象是否为指定集合的真超集

IsSunsetOf     方法         确定HashSet<T>对象是否为指定集合的子集

IsSupersetOf    方法         确定HashSet<T>对象是否为指定集合的超集

Remove      方法         从HashSet<T>对象中移除指定的元素

RemoveWhere    方法         从HashSet<T>集合中移除与指定谓词所定义的条件相匹配的所有元素

SetEquals     方法         确定HashSet<T>对象与指定的集合中是否包含相同的元素

SynmmetricExceptWith  方法     修改当前的HashSet<T>对象,以仅包含该对象或指定集合中存在的元素

TrimExcess    方法         将HashSet<T>对象的容量设置为它所包含的元素的实际个数,向上舍入为接近的特性与实现的值。

UnionWith     方法         修改当前的HashSet<T>对象,以包含该对象本身和指定集合中存在的所有元素

给个简单的例子,写不完的,总之记得HashSet<T>主要的作用是用来进行,交集、并集等运算的就OK了。

        static void Main(string[] args)
{
HashSet<string> hs = new HashSet<string>();
hs.Add("你");
hs.Add("好");
hs.Add("吗");
HashSet<string> hs1 = new HashSet<string>();
hs1.Add("你");
hs1.Add("好"); bool b = hs1.IsProperSubsetOf(hs); //确定hs1是否是hs的真子集
Console.WriteLine(b); //输出True HashSet<string> hs2 = new HashSet<string>();
hs2.Add("爱你");
IEnumerable<string> list = hs.Union(hs2); //返回并集
foreach (string str in list)
{
Console.WriteLine(str); //输出 你 好 吗 爱你
} Console.ReadKey();
}

(转)HashSet<T>类的更多相关文章

  1. HashSet<T>类 用法

    HashSet<T>类主要是设计用来做高性能集运算的,例如对两个集合求交集.并集.差集等.集合中包含一组不重复出现且无特性顺序的元素 改变集的值的方法: HashSet<T>的 ...

  2. HashSet<T>类

    HashSet<T>类主要是设计用来做高性能集运算的,例如对两个集合求交集.并集.差集等.集合中包含一组不重复出现且无特性顺序的元素. HashSet<T>的一些特性如下: 1 ...

  3. (转) C#解惑:HashSet<T>类

    HashSet<T>是一个相对“冷门”的类型,平时在项目中用得不多,但是在特定的业务中可以大用. 先来了解下HashSet<T>类,主要被设计用来存储集合,做高性能集运算,例如 ...

  4. C#解惑:HashSet<T>类

    原贴: https://blog.csdn.net/X_X_OO/article/details/52529548 https://www.cnblogs.com/refuge/p/9465466.h ...

  5. HashSet 实现类

    HashSet 实现类 通过 HashCode 判断元素是否存在,若存在则不添加,否则添加以此实现唯一性 常用方法 Modifier and Type Method and Description b ...

  6. Set接口HashSet实现类

    java.util.Set接口 extends Collection接口 Set特点: 1.不允许有重复的元素 2.没有索引,没有带索引的方法,也不能使用普通的for遍历 java.util.Hash ...

  7. 微软在 .NET 3.5 新增了一个 HashSet 类,在 .NET 4 新增了一个 SortedSet 类,本文介绍他们的特性,并比较他们的异同。

    微软在 .NET 3.5 新增了一个 HashSet 类,在 .NET 4 新增了一个 SortedSet 类,本文介绍他们的特性,并比较他们的异同. .NET Collection 函数库的 Has ...

  8. Nullable类型和HashSet<T>集合

    今天接触到两个新的类型,查了一下才发现它们已经出现好久了,特作一下标记 Nullable结构 在System命名空间下,在 .NET Framework 2.0 版中是新增的:用它定义的值类型的对象与 ...

  9. 数据结构-List接口-LinkedList类-Set接口-HashSet类-Collection总结

    一.数据结构:4种--<需补充> 1.堆栈结构:     特点:LIFO(后进先出);栈的入口/出口都在顶端位置;压栈就是存元素/弹栈就是取元素;     代表类:Stack;     其 ...

随机推荐

  1. PHP ftp_nb_get() 函数

    定义和用法 ftp_nb_get() 函数从 FTP 服务器上下载一个文件并保存到本地一个文件中.(无阻塞) 该函数返回下列值之一: FTP_FAILED(发送/获取失败) FTP_FINISHED( ...

  2. luoguP2590 [ZJOI2008]树的统计 [树链剖分] [TLE的LCT]

    题目描述 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w. 我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u ...

  3. yield列表反转 islice切片(2.6)

    yield列表反转 islice切片 列表反转 l1 = [i for i in range(10)] print(l1) print(l1[::2]) l1.reverse() # 注: pytho ...

  4. opencv环境变量配置

    本文章由@浅墨_毛星云 出品  原文文章链接:http://blog.csdn.net/poem_qianmo/article/details/19809337 作者:毛星云(浅墨)    微博:ht ...

  5. 2、Appium Desktop 使用介绍

    1.appium运行界面介绍 默认显示监控的 host 和 port , 这和 Appium-Server 中是一致的.  2.点击 “Start Server V 1.7.2” 按钮启动服务,出现如 ...

  6. PAT_A1091#Acute Stroke

    Source: PAT A1091 Acute Stroke (30 分) Description: One important factor to identify acute stroke (急性 ...

  7. 屏幕操作录制成gif图的技巧

    我呢,在记录一些做过得实例的时候,总需要上一两张效果图,截静态图太浪费时间了,于是就找了一些录制git图的软件 一.Gif动画录制工具 这是我在360软件中心下载的,用了一下,不好用,录制出来的图是黑 ...

  8. [BOI2009]Radio Transmission 无线传输

    题目描述 给你一个字符串,它是由某个字符串不断自我连接形成的. 但是这个字符串是不确定的,现在只想知道它的最短长度是多少. 输入输出格式 输入格式: 第一行给出字符串的长度,1 < L ≤ 1, ...

  9. C#跨线程访问(一) ---- SynchronizationContext

    一.SynchronizationContext顾名思义是同步上下文的意思.利用此对象可以实现线程间数据的同步.异步访问. 二.例子 class Program { static Thread _wo ...

  10. PHP72w安装

    PHP72w #  rpm  -Uvh   https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm #  rpm ...