In the example I changed the type of the variable elements . Instead of being an array of integers, it is now an ArrayList. This I have done because it has the 'Contains' method, which returns a boolean depending on whether the indicated value is inside the arraylist or not.
As you can see, the only thing I added inside the loop is the following condition:
if (!elementos.Contains(numero))
elementos.Add(numero);
What it does is add the number selected by the user as long as it does not already exist in the arraylist.
static void Main(string[] args)
{
//int[] elementos = new int[10];
ArrayList elementos = new ArrayList();
int i = 1;//que empieze a guardar desde 0
int numero = 0;
while (i < 11)
{
Console.WriteLine("Proporcione un elemento {0}", i);
numero = Convert.ToInt32(Console.ReadLine());
if (!elementos.Contains(numero))
elementos.Add(numero);
i++;
}
Console.ReadKey(true);
}