C# HashSet 用法
这个集合类包含不重复项的无序列表。这种集合称为“集(set)”。集是一个保留字,所以该类有另一个名称HashSet
using System.Collections.Generic;
using UnityEngine;
public class ConstTest : MonoBehaviour
{
private static string[] hello = new string[] {"one","two","three","four" };
HashSet<string> companyTeams = new HashSet<string>(hello);
string[] world = new string[] { "one", "two"/*, "five", "six" */};
private void Start()
{
#region HashSet<T>的修改方法
//bool isSuccess = companyTeams.Add("one");//如果某元素不在集合中,Add()方法就把该元素添加到集合中。在其返回值Boolean中,返回元素是否添加的信息
//companyTeams.Clear();//方法Clear()删除集合中的所有元素
//companyTeams.Remove("one");//Remove()方法删除指定的元素
//string[] CopyTemp=new string[companyTeams.Count];// CopyTo()把集合中的元素复制到一个数组中
// companyTeams.CopyTo(CopyTemp);
//string[] world = new string[] {"one","two","five","six"};
//companyTeams.UnionWith(world);//UnionWith()方法把传送为参数的集合中的所有元素添加到集中
//companyTeams.IntersectWith(world);// IntersectWith()修改了集,仅包含所传送的集合和集中都有的元素
//companyTeams.ExceptWith(world);//ExceptWith()方法把一个集合作为参数,从集中删除该集合中的所有元素
//companyTeams.RemoveWhere(isString); //RemoveWhere()方法需要一个Predicate<T>委托作为参数。删除满足谓词条件的所有元素
//foreach (var item in companyTeams)
//{
// Debug.Log(item);
//}
#endregion
#region HashSet<T>的验证方法
//bool value = companyTeams.Contains("one");//如果所传送的元素在集合中,方法Contains()就返回true
//bool value = companyTeams.IsSubsetOf(world);//如果参数传送的集合是集的一个子集(参数完全相同),方法IsSubsetOf()就返回true,
//bool value =companyTeams.IsSupersetOf(world);//如果参数传送的集合是集的一个超集,方法IsSupersetOf()就返回true
//bool value =companyTeams.Overlaps(world);// 如果参数传送的集合中至少有一个元素与集中的元素相同,Overlaps()就返回true
bool value =companyTeams.SetEquals(world);// 如果参数传送的集合和集包含相同的元素,方法SetEquals()就返回true
Debug.Log(value);
#endregion
}
private bool isString(string value)
{
if (value.Equals("one")) return true;
else return false;
}
}