ecco un esempio in console:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
ArrayList myarray = new ArrayList();

myarray.Add("a");
myarray.Add("a");
myarray.Add("ciao");
myarray.Add("prova");
myarray.Add("come");
myarray.Add("stai");
myarray.Add("elimina");
myarray.Add("elimina");
myarray.Add("elimina");
myarray.Add("elimina");
myarray.Add("andiamo");
myarray.Add("iPod");

myarray.Sort();
ArrayList arrOrdinato = new ArrayList();


for (int i = 0;i < myarray.Count; i++)
{
if (i < myarray.Count-1)
{
if (myarray[i].ToString() == myarray[i + 1].ToString())
{
myarray[i] = null;
}
}
else
{
if (myarray[i-1].ToString() == myarray[i].ToString())
{
myarray[i] = null;
}
}
}

//Ripulisci
CleanList(myarray);

//Stampa array definitivo
Print(myarray);

Console.ReadLine();
}



private static ArrayList CleanList(ArrayList a)
{
int len = a.Count;

for (int i = 0; i <= len-1; i++)
{
if (a[i]==null)
{
a.RemoveAt(i);
len = a.Count;
}
}
if (a.Contains(null))
{
CleanList(a);
}
return a;
}

private static void Print(ArrayList a)
{
Console.WriteLine("------");
for (int i = 0; i <= a.Count-1; i++)
{
Console.WriteLine(a[i].ToString());
}
Console.WriteLine("------");
}
}
}