108 lines
1.6 KiB
C#
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();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|