• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
jk-2048
博客园    首页    新随笔    联系   管理    订阅  订阅
C#数据结构 HashSet 用法

所属命名空间

.NET 3.5在 System.Collections.Generic 命名空间中包含一个新的集合类:HashSet
这个集合类包含不重复项的无序列表称作HashSet。(类似C++的unordered_set?)
这个集合基于散列hash值,插入元素的操作非常快,不需要像List类那样重排集合。

操作函数表

Add重载:

Hashset还提供了另一个Add()方法重载。它返回一个布尔值,说明是否添加了元素。如果该元素已经在集中,就不添加它,并返回false。
 

RemoveWhere() 满足条件删除

RemoveWhere()方法需要一个Predicate委托作为参数。删除满足谓词条件的所有元素
Predicate 可以委托给一个函数或者一个拉姆达表达式:

委托给拉姆达表达式:

companyTeams.RemoveWhere(company => { if (company.Length > 5) { return true; } else { return false; } });

委托给一个函数:

companyTeams.RemoveWhere(CheckLength);
public bool CheckLength(string company)
{
return company.Length > 5 ? true : false;
}
 

CopyTo() 把集合中的元素复制到一个数组中

string[] strArray = new string[companyTeams.Count];
companyTeams.CopyTo(strArray);   //将hashset复制到数组中
foreach (string str in strArray)
{
    Console.WriteLine(str);
}
 

ExceptWith() 删除集合中所有元素

参数是一个hashset
companyTeams.ExceptWith(privateTeams);
foreach (var str in companyTeams)
{
    Console.WriteLine(str);
}
 
 

HashSet类提供的方法可以创建合集和交集

 
posted on 2024-02-23 23:35  JK降谷羽  阅读(327)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3