HashSet 用法
.NET 3.5在System.Collections.Generic命名空间中包含一个新的集合类:HashSet
HashSet
创建HashSet:
HashSet
HashSet
HashSet
Add(): 如果某元素不在集合中,Add()方法就把该元素添加到集合中。在其返回值Boolean中,返回元素是否添加的信息
eg:
if (!companyTeams.Add("McLaren"))
Console.WriteLine("McLaren was already in this set");
Clear():方法Clear()删除集合中的所有元素
eg: companyTeams.Clear();
Remove():Remove()方法删除指定的元素
eg: companyTeams.Remove("McLaren");
RemoveWhere(): RemoveWhere()方法需要一个Predicate
Predicate 可以委托给一个函数或者一个拉姆达表达式:
委托给拉姆达表达式:
eg:companyTeams.RemoveWhere(company => { if (company.Length > 5) { return true; } else { return false; } });
委托给一个函数:
eg:
companyTeams.RemoveWhere(CheckLength);
public bool CheckLength(string company)
{
return company.Length > 5 ? true : false;
}
CopyTo(): CopyTo()把集合中的元素复制到一个数组中
eg:
string[] strArray = new string[companyTeams.Count];
companyTeams.CopyTo(strArray);
foreach (string str in strArray)
{
Console.WriteLine(str);
}
ExceptWith():ExceptWith()方法把一个集合作为参数,从集中删除该集合中的所有元素
eg:
companyTeams.ExceptWith(privateTeams);
foreach (var str in companyTeams)
{
Console.WriteLine(str);
}
UnionWith():UnionWith()方法把传送为参数的集合中的所有元素添加到集中
eg:
companyTeams.UnionWith(privateTeams);
foreach (var str in companyTeams)
{
Console.WriteLine(str);
}
HashSet
Contains():如果所传送的元素在集合中,方法Contains()就返回true
eg:
if (companyTeams.Contains("BMW"))
{
Console.WriteLine("companyTeams contains \"BMW\"");
}
IsSubsetOf():如果参数传送的集合是集的一个子集,方法IsSubsetOf()就返回true
eg:
if (traditionalTeams.IsSubsetOf(companyTeams))
{
Console.WriteLine("traditionalTeams is " + "subset of companyTeams");
}
IsSupersetOf():如果参数传送的集合是集的一个超集,方法IsSupersetOf()就返回true
eg:
if (companyTeams.IsSupersetOf(traditionalTeams))
{
Console.WriteLine("companyTeams is a superset of " + "traditionalTeams");
}
Overlaps():如果参数传送的集合中至少有一个元素与集中的元素相同,Overlaps()就返回true
eg:
traditionalTeams.Add("Williams");
if (privateTeams.Overlaps(traditionalTeams))
{
Console.WriteLine("At least one team is " + "the same with the traditional " + "and privateteams");
}
SetEquals():如果参数传送的集合和集包含相同的元素,方法SetEquals()就返回true
http://www.cnblogs.com/xiaopin/archive/2011/01/08/1930540.html
Hashtable用法:
一、哈希表(Hashtable)简述
在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中key/value键值对均为object类型,所以Hashtable可以支持任何类型的key/value键值对.
二、哈希表的简单操作
在哈希表中添加一个key/value键值对:HashtableObject.Add(key,value);
在哈希表中去除某个key/value键值对:HashtableObject.Remove(key);
从哈希表中移除所有元素: HashtableObject.Clear();
判断哈希表是否包含特定键key: HashtableObject.Contains(key);
Hashtable ht = new Hashtable(); //创建一个Hashtable实例
ht.Add("E", "e");//添加key/value键值对
ht.Add("A", "a");
ht.Add("C", "c");
ht.Add("B", "b");
string s = (string)ht["A"];
if (ht.Contains("E")) //判断哈希表是否包含特定键,其返回值为true或false
Console.WriteLine("the E key:exist");
ht.Remove("C");//移除一个key/value键值对
Console.WriteLine(ht["A"]);//此处输出a
ht.Clear();//移除所有元素
Console.WriteLine(ht["A"]); //此处将不会有任何输出
foreach (DictionaryEntry de in ht) //ht为一个Hashtable实例
{
Console.WriteLine(de.Key);//de.Key对应于key/value键值对key
Console.WriteLine(de.Value);//de.Key对应于key/value键值对value
}
ArrayList akeys = new ArrayList(ht.Keys); //别忘了导入System.Collections
akeys.Sort(); //按字母顺序进行排序
foreach (string skey in akeys)
{
Console.Write(skey + ":");
Console.WriteLine(ht[skey]);//排序后输出
}