Files
SuperVPN/output/Libraries/BouncyCastle.Crypto/Org/BouncyCastle/Utilities/Collections/HashSet.cs
2025-10-09 09:57:24 +09:00

80 lines
1.2 KiB
C#

using System;
using System.Collections;
namespace Org.BouncyCastle.Utilities.Collections;
public class HashSet : ISet, ICollection, IEnumerable
{
private readonly IDictionary impl = Platform.CreateHashtable();
public virtual int Count => impl.Count;
public virtual bool IsEmpty => impl.Count == 0;
public virtual bool IsFixedSize => impl.IsFixedSize;
public virtual bool IsReadOnly => impl.IsReadOnly;
public virtual bool IsSynchronized => impl.IsSynchronized;
public virtual object SyncRoot => impl.SyncRoot;
public HashSet()
{
}
public HashSet(IEnumerable s)
{
foreach (object item in s)
{
Add(item);
}
}
public virtual void Add(object o)
{
impl[o] = null;
}
public virtual void AddAll(IEnumerable e)
{
foreach (object item in e)
{
Add(item);
}
}
public virtual void Clear()
{
impl.Clear();
}
public virtual bool Contains(object o)
{
return impl.Contains(o);
}
public virtual void CopyTo(Array array, int index)
{
impl.Keys.CopyTo(array, index);
}
public virtual IEnumerator GetEnumerator()
{
return impl.Keys.GetEnumerator();
}
public virtual void Remove(object o)
{
impl.Remove(o);
}
public virtual void RemoveAll(IEnumerable e)
{
foreach (object item in e)
{
Remove(item);
}
}
}