首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 3.0 入門【Lambda 表達式】第五章(二):實戰範例——用 Any() 取代迴圈檢查陣列含零,短評 => 運算子易誤認爲不等號

     編輯:關於C語言

傳統迴圈檢查:中斷輸出混雜

int[] a = { 1, 2, 0 };
foreach (int n in a)
{
    if (n == 0) { Console.WriteLine("陣列含 0"); return; }
    Console.WriteLine(100 / n);
}
// 輸出:100, 50, "陣列含 0" —— 計算與錯誤混雜

Lambda + Any():計算前預檢,結構清晰

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 替代。

結構對比:迴圈 vs 一行預檢

用 if (a.Any(...)) 替換「迴圈檢查 + 早期返回」模式,語意相當於對單值 if (n == 0) 的集合擴充,代碼結構更明快。

短評:=> 運算子易被誤讀為不等號

  • BASIC 系語言中 >=、=> 等價為「不等於」。
  • 習慣 VB 的開發者極易將 x => 0 讀作「x 不等於 0」。
  • VB IDE 輸入 => 會自動修正為 >=,掩蓋了差異。
  • 建議養成「看到 => 讀作 goes to」的心智模型,避免誤讀。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved