Để truy cập phần tử mảng trong câu lệnh foreach, giá trị lặp chính là phần tử mảng. Chỉ số (index) không có sẵn trong foreach, nhưng có thể tính toán nếu cần.
Ví dụ
using System;
namespace ArrayApplication
{
class MyArray
{
static void Main(string[] args)
{
int[] n = new int[10];
// Khởi tạo mảng
for (int i = 0; i < 10; i++)
n[i] = i + 100;
// Duyệt bằng foreach
foreach (int j in n)
{
int i = j - 100; // Tính lại chỉ số
Console.WriteLine("Element[{0}] = {1}", i, j);
}
Console.WriteLine(n); // In kiểu mảng
Console.ReadKey();
}
}
}
Kết quả
Element[0] = 100 Element[1] = 101 Element[2] = 102 Element[3] = 103 Element[4] = 104 Element[5] = 105 Element[6] = 106 Element[7] = 107 Element[8] = 108 Element[9] = 109 System.Int32[]
Lưu ý
foreachchỉ đọc (read-only), không thể gán giá trị cho biến lặp- Để truy cập chỉ số, dùng
forhoặcfor (int i = 0; i < arr.Length; i++) - C# 7+: Dùng
foreach (var (index, value) in arr.Select((v, i) => (i, v)))(cần LINQ)
Truy cập phần tử cụ thể: Dùng chỉ số trực tiếp: int a = n[1]; cho phần tử thứ 2 (giá trị 101).