Что такое цикл foreach в C#?

Видел этот цикл, но немного не понимаю его суть, хелп)

Цикл foreach говорит сам за себя, он перебирает массив или коллекцию и делает это в таком виде:

static void Main(string[] args)
        {
            Random rand = new Random();
            int[] myarray = new int[10];
            for (int i = 0; i < myarray.Length; i  )
            {
                myarray[i] = rand.Next(1, 30);
            }
        foreach (var elem in myarray)
        {
            Console.WriteLine(elem);
        }
        Console.ReadKey();
    }</pre>

То есть, если просто говорить то для каждого элемента в моем массиве мы выполняем операцию в фигурных дужках.