所属命名空间
.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);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix