From DojoWiki
public class MySet
{
//Adds sets using override of the + operator
public static MySet operator +(MySet c1, MySet c2)
{
for (int i = 0; i< c2.Length; i++) {
if (!c1.Contains(c2[i])) c1.Add(c2[i]) ;
}
return c1 ;
}
public bool Contains(int j)
{
for (int i = 0; i < this.Length; i++)
{
if (j == this[i]) return true;
}
return false;
}
//Adds single elements
public void Add(int j)
{
int[] largerArray = new int[this.Length + 1];
for (int i = 0; i < this.Length; i++)
{
largerArray[i] = this[i];
}
largerArray[largerArray.Length - 1] = j;
_contents = largerArray;
_length++;
}
public override bool Equals(object b)
{
MySet set = (MySet)b;
for (int i = 0; i < this.Length; i++)
{
if (!set.Contains(this[i])) return false;
}
for (int i = 0; i < set.Length; i++)
{
if (!this.Contains(set[i])) return false;
}
return true;
}
private int _length;
private int[] _contents = new int[10];
public int Length
{
get { return _length; }
set { _length = value; }
}
public int this[int index]
{
get
{
return _contents[index];
}
set
{
_contents[index] = value;
}
}
public MySet(int[] contents)
{
_length = contents.Length;
//remoteDuplicates
_contents = contents;
}
}