Files
tianrunCRM/Assets/CoolapeFrame/Scripts/toolkit/NewSet.cs
2020-07-04 14:41:25 +08:00

108 lines
1.6 KiB
C#

/*
********************************************************************************
*Copyright(C),coolae.net
*Author: chenbin
*Version: 2.0
*Date: 2017-01-09
*Description: hashSet 包装
*Others:
*History:
*********************************************************************************
*/
using System.Collections;
using System;
namespace Coolape
{
public class NewSet
{
private Hashtable data = new Hashtable();
public static NewSet create()
{
NewSet ret = new NewSet();
return ret;
}
public static NewSet create(params object[] vars)
{
NewSet ret = new NewSet();
foreach (object v in vars) {
ret.Add(v);
}
return ret;
}
public bool IsEmpty()
{
return data == null || data.Count <= 0;
}
public NewSet Add(object o)
{
lock (data) {
if (!data.Contains(o))
data [o] = 1;
return this;
}
}
public bool Contains(object o)
{
lock (data) {
return data.Contains(o);
}
}
public NewSet addAll(ICollection objs)
{
lock (data) {
foreach (object o in objs)
data [o] = 1;
return this;
}
}
public NewSet addAll(ArrayList objs)
{
lock (data) {
foreach (object o in objs) {
if (!data.Contains(o))
data.Add(o, 1);
}
return this;
}
}
public ICollection Values {
get {
return data.Keys;
}
}
public NewSet Remove(object key)
{
lock (data) {
data.Remove(key);
return this;
}
}
public int Count()
{
return data.Count;
}
public void Clear()
{
lock (data) {
data.Clear();
}
}
}
}