所属命名空间
.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);
}