Som många redan nämnt så gör du det enklare för dig om du redan vid inmatningen konverterar till en int.
Tänk på att felhantera inmatningen, vad händer nu om användare skriver en bokstav istället för en siffa? (hint: googla och läs på angående int.TryParse).
Sen ser jag att du använder lite olika variabler för att hantera vilket nummer som ska skrivas ut i loopen samt index positionen i din array. Dessa variabler kommer du redan åt i din loop via din loop variabel i.
Loopen börjar på 0 för att index 0 är första positionen i en array. Så om du vill skriva ut 1-10 istället för 0-9 så får du skriva i + 1 din utskrift.
Om du behöver komma åt ett index, använd en for-loop istället för foreach. Ser bara konstigt ut att öka en annan variabel och sen göra en foreach, när en for-loop har detta inbyggt.
static void Main(string[] args)
{
int integer = 47; // Vad har denna för funktion?
int[] array = new int[10]; //En vektor för 10 värden
for (int i = 0; i < array.Length; i++) //En for loop börjar på 0 går upp till nio ökar ett värde varje loop
{
Console.WriteLine($"Skriv in {i+1} tal");// Skriver ut i consolen
array[i] = int.Parse(Console.ReadLine());//Låter mig skriva värdet på alla 10 tal
}
for (int i = 0; i < array.Length; i++)
{
Console.WriteLine($"Indexpostion {i} har värdet {array[i]}");
}
Console.ReadLine();
}