Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Duyệt mảng bằng foreach trong C#


Vòng lặp foreach dùng để thực thi câu lệnh cho mỗi phần tử trong mảng hoặc collection. Khác với for, foreach không có biến chỉ số (index) - nó lặp trực tiếp qua các giá trị.

Ví dụ: Bubble Sort kết hợp foreach hiển thị

using System;

namespace BubbleSort
{
    class MySort
    {
        static void Main(string[] args)
        {
            int[] arr = { 78, 55, 45, 98, 13 };
            int temp;
            
            // Bubble Sort
            for (int j = 0; j <= arr.Length - 2; j++)
            {
                for (int i = 0; i <= arr.Length - 2; i++)
                {
                    if (arr[i] > arr[i + 1])
                    {
                        temp = arr[i + 1];
                        arr[i + 1] = arr[i];
                        arr[i] = temp;
                    }
                }
            }
            
            // Hiển thị bằng foreach
            Console.WriteLine("Đã sắp xếp:");
            foreach (int p in arr)
                Console.Write(p + " ");
            
            Console.Read();
        }
    }
}

Kết quả

Đã sắp xếp: 13 45 55 78 98

Đặc điểm foreach

  • Chỉ đọc: Không thể gán giá trị cho biến lặp (p = 10 lỗi compile)
  • Không có index: Cần index thì dùng for hoặc LINQ Select((v,i) => ...)
  • Hoạt động trên: Mảng, List, IEnumerable, ICollection
  • An toàn: Tránh lỗi off-by-one, index out of range

Khi nào dùng foreach vs for

Trường hợpKhuyên dùng
Chỉ đọc, không cần indexforeach
Cần index, sửa đổi mảngfor
Lặp ngược, bước nhảy tùy chỉnhfor
LINQ query syntaxforeach