int[] a = { 1, 2, 0 };
foreach (int n in a)
{
if (n == 0) { Console.WriteLine("陣列含 0"); return; }
Console.WriteLine(100 / n);
}
// 輸出:100, 50, "陣列含 0" —— 計算與錯誤混雜
using System.Linq;
int[] a = { 1, 2, 0 };
if (a.Any(x => x == 0))
{
Console.WriteLine("陣列含 0");
return;
}
foreach (int n in a) Console.WriteLine(100 / n);
// 輸出:僅 "陣列含 0" —— 預檢通過才進入計算
Any(predicate) 為擴充方法,需 using System.Linq;。.NET 2.0 環境可用 Array.FindIndex(a, x => x == 0) >= 0 替代。
用 if (a.Any(...)) 替換「迴圈檢查 + 早期返回」模式,語意相當於對單值 if (n == 0) 的集合擴充,代碼結構更明快。
>=、=> 等價為「不等於」。x => 0 讀作「x 不等於 0」。=> 會自動修正為 >=,掩蓋了差異。