C# Lambda 表達式

王林
發布: 2024-09-03 15:27:19
原創
324 人瀏覽過

C#中的Lambda表達式是一個匿名函數,它包含一個表達式或一堆語句,用於實作Lambda表達式的運算子是「=>」。 Lambda 表達式由兩部分組成,其中左側是輸入,右側是表達式。簡單 Lambda 表達式接受一個參數並傳回值,使用 lambda 表達式最常見的場景之一就是列表。

文法

現在我們已經了解 C# 中的 Lambda 表達式是什麼,接下來讓我們了解實現該表達式的標準語法。對於 Lambda 表達式,我們有兩種類型的兩種語法:

  • 表達式 Lambda: 這包含一個輸入和一個表達式。

文法:

input => expression;
登入後複製
  • 語句 Lambda: 這只包含輸入和要執行的幾個語句之一。

文法:

input => { statements };
登入後複製

開發者可以根據情況自由選擇適合自己的需求。

Lambda 表達式在 C# 中如何運作?

當我們實作 Lambda 表達式時,我們有兩個邊和 => 的 Lambda 符號。之間。左側接受任何類型的輸入,而右側接受表達式或語句。在C#中,Lambda表達式實作了一個功能,它允許我們的編譯器根據變數所在的上下文來推斷變數類型。這個功能稱為類型推論功能。我們可以將函數作為參數傳遞給方法呼叫。

每個 lambda 表達式在內部映射到一個介面。現在,當我們使用 Lambda 表達式執行程式時,編譯器會根據表達式的上下文確定要指派的接口,這一切都在編譯時發生。這些表達式是匿名方法,意思是沒有名稱的方法,並使用函數式介面實作。

範例:現在讓我們從 lambda 表達式的實作開始。對於我們的第一個程序,我們將以簡單的形式實現lambda 表達式,其中我們使用用戶定義的類,而我們的第二個示例將非常簡單,我們將在列表中找到奇數的第一次出現。那麼,我們就開始吧。

代碼:

using System;
using System.Collections.Generic;
using System.Linq;
class City_Details {
public int cityCode {
get;
set;
}
public string cityName {
get;
set;
}
}
class det {
public static void Main(string[] args) {
List<City_Details> details = new List<City_Details>() {
new City_Details{ cityCode = 1, cityName = "Mumbai" },
new City_Details{ cityCode = 2, cityName = "Chennai" },
new City_Details{ cityCode = 3, cityName = "Pune" },
new City_Details{ cityCode = 4, cityName = "Ahmedabad" },
new City_Details{ cityCode = 5, cityName = "Delhi" }
};
var newDetails = details.OrderBy(x => x.cityName);
foreach(var value in newDetails) {
Console.WriteLine(value.cityCode + " " + value.cityName);
}
}
}
登入後複製

代碼說明:  導入系統檔案後,我們建立一個具有城市代碼和城市名稱兩個屬性的類別。然後我們就有了 det 類,其中包含 main 和其他函數。這裡我們呼叫我們的第一個類別並以列表的形式分配城市代碼和名稱。然後我們使用 OrderBy 按順序列出詳細資料列表,在這裡我們實作 lambda 表達式。現在我們已經在按城市名稱的列表中列出了數據,我們進入 foreach 循環並列印出接下來的每一行。如果執行時沒有任何錯誤,此程式碼將列印列表,但不同的是,這意味著以 A 開頭的 Ahmedab​​ad 將首先列印,而 Pune 將列印到底部。請參閱下面所附的輸出螢幕截圖:

C# Lambda 表達式

如您所見,我們的輸出符合預期,按字母順序排列。現在,繼續我們的第二個範例,我們有一個簡單的數字列表,其中包含奇數和偶數。那麼讓我們理解並執行我們的第二個程序。

代碼:

using System;
using System.Collections.Generic;
class ExampleTwo {
static void Main() {
List<int> newList = new List<int>() { 10, 21, 31, 40 };
int oddNumber = newList.FindIndex(x => x % 2 != 0);
Console.WriteLine( "\n " + oddNumber);
}
}
登入後複製

程式碼說明:這是我們最簡單的 Lambda 表達式實作範例,我們只使用列表和 Lambda 表達式。從我們的系統檔案開始,然後是我們的類別ExampleTwo 和main。然後我們初始化了整數列表,在我們的列表中,我們有四個數字。這是兩個奇數和兩個偶數。接下來,我們有整數變量,我們在其中使用 FindIndex,這是我們使用 Lambda 表達式的地方。在 FindIndex 中,我們有一個 x 作為輸入,我們的輸出將是一個不能被數字 2 整除的數字。經過這個數學運算,我們將得到奇數的索引。最後我們有了輸出語句,它將傳回第一次出現奇數的索引號。請參閱下面所附的輸出螢幕截圖:

C# Lambda 表達式

正如我們在程式碼解釋中所理解的,我們的輸出將是奇數的索引號,而不是奇數本身。所以在這裡,我們有 1,它的索引是 21。

優點

現在我們已經了解了 C# 中 Lambda 表達式的幾乎所有內容,我們需要了解使用它的好處。主要優點之一是能夠重複使用程式碼,這樣我們就有更好的可讀性。由於沒有指定輸入類型,它是最靈活的功能之一。

好處之一是能夠為 lambda 表達式編寫方法,無論我們想在哪裡使用它。當我們只需要創建和使用一個方法一次時,這是最好的。這樣我們就可以節省很多精力,不需要聲明和寫單獨的方法。

結論

任何程式語言中的 Lambda 表達式都可以發揮重要作用。在 C# 中,Lambda 表達式用作匿名表達式,其中左側有一個輸入,右側有一個表達式或語句清單。 Lambda 表達式以「=>」表示。任何類型輸入的靈活性使其對開發人員非常有用。

以上是C# Lambda 表達式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!