C# Lambda表達(dá)式用途深入理解
更新時(shí)間:2012年12月27日 14:42:10 作者:
假如我們想要從一個(gè)整型數(shù)組中取出其中是奇數(shù)的選項(xiàng),其實(shí)現(xiàn)方式有很多,接下來通過三種方法的對(duì)比理解Lambda表達(dá)式的用途,需要了解的朋友可以參考下
假如我們想要從一個(gè)整型數(shù)組中取出其中是奇數(shù)的選項(xiàng),其實(shí)現(xiàn)方式有很多,我們通過下面三種實(shí)現(xiàn)方式來對(duì)對(duì)比理解Lambda表達(dá)式的用途
方法一:命名方法
public class Common
{
public delegate bool IntFilter(int i);
public static List<int> FilterArrayOfInt(int[] ints, IntFilter filter)
{
var lstOddInt = new List<int>();
foreach (var i in ints)
{
if (filter(i))
{
lstOddInt.Add(i);
}
}
return lstOddInt;
}
}
public class Application
{
public static bool IsOdd(int i)
{
return i % 2 != 0;
}
}
調(diào)用:
var nums = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var oddNums = Common.FilterArrayOfInt(nums, Application.IsOdd);
foreach (var item in oddNums)
{
Console.WriteLine(item); // 1,3,5,7,9
}
方法二:匿名方法
var oddNums = Common.FilterArrayOfInt(nums, delegate(int i) { return i % 2 != 0; });
方法三:Lambda表達(dá)式
var oddNums = Common.FilterArrayOfInt(nums, i => i % 2 != 0);
很顯然,使用Lambda表達(dá)式使代碼更為簡(jiǎn)潔。
方法一:命名方法
復(fù)制代碼 代碼如下:
public class Common
{
public delegate bool IntFilter(int i);
public static List<int> FilterArrayOfInt(int[] ints, IntFilter filter)
{
var lstOddInt = new List<int>();
foreach (var i in ints)
{
if (filter(i))
{
lstOddInt.Add(i);
}
}
return lstOddInt;
}
}
復(fù)制代碼 代碼如下:
public class Application
{
public static bool IsOdd(int i)
{
return i % 2 != 0;
}
}
調(diào)用:
復(fù)制代碼 代碼如下:
var nums = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var oddNums = Common.FilterArrayOfInt(nums, Application.IsOdd);
foreach (var item in oddNums)
{
Console.WriteLine(item); // 1,3,5,7,9
}
方法二:匿名方法
復(fù)制代碼 代碼如下:
var oddNums = Common.FilterArrayOfInt(nums, delegate(int i) { return i % 2 != 0; });
方法三:Lambda表達(dá)式
復(fù)制代碼 代碼如下:
var oddNums = Common.FilterArrayOfInt(nums, i => i % 2 != 0);
很顯然,使用Lambda表達(dá)式使代碼更為簡(jiǎn)潔。
您可能感興趣的文章:
- C# 內(nèi)部類與Lambda表達(dá)式用法詳解
- C# 本地函數(shù)與 Lambda 表達(dá)式詳細(xì)介紹
- C# Lambda表達(dá)式及Lambda表達(dá)式樹的創(chuàng)建過程
- C# lambda表達(dá)式原理定義及實(shí)例詳解
- C# lambda表達(dá)式應(yīng)用如何找出元素在list中的索引
- C#匿名委托與Lambda表達(dá)式詳解
- C#中方法的直接調(diào)用、反射調(diào)用與Lambda表達(dá)式調(diào)用對(duì)比
- 理解C#中的Lambda表達(dá)式
- C#中使用Lambda表達(dá)式自定義比較器實(shí)現(xiàn)兩個(gè)列表合并實(shí)例
- C#基礎(chǔ)之Lambda表達(dá)式用法實(shí)例教程
- C#中Lambda表達(dá)式的用法
相關(guān)文章
asp.net中ADO SQL數(shù)據(jù)庫(kù) 筆記匯總 持續(xù)更新中
asp.net中ADO SQL數(shù)據(jù)庫(kù) 筆記匯總 持續(xù)更新中,需要的朋友可以參考下2012-07-07VC用Ado接口連接和使用數(shù)據(jù)庫(kù)及注意事項(xiàng)
進(jìn)行方法調(diào)用時(shí),所傳遞的參數(shù)的類型的轉(zhuǎn)換(可能存在比本文更簡(jiǎn)便的處理方法但我未發(fā)現(xiàn)) ,需要了解的朋友可以參考下2012-12-12ASP.NET web.config中數(shù)據(jù)庫(kù)連接字符串connectionStrings節(jié)的配置方法
ASP.NET web.config中數(shù)據(jù)庫(kù)連接字符串connectionStrings節(jié)的配置方法,需要的朋友可以參考一下2013-05-05asp.net core中如何使用cookie身份驗(yàn)證
這篇文章主要介紹了asp.net core中如何使用cookie身份驗(yàn)證的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12asp.net+jquery ajax無刷新登錄的實(shí)現(xiàn)方法
asp.net+jquery ajax無刷新登錄的實(shí)現(xiàn)方法,需要的朋友可以參考一下2013-06-06asp.net計(jì)算每個(gè)頁(yè)面執(zhí)行時(shí)間的方法
這篇文章主要介紹了asp.net計(jì)算每個(gè)頁(yè)面執(zhí)行時(shí)間的方法,涉及asp.net操作時(shí)間的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04WPF轉(zhuǎn)換器IValueConverter用法
這篇文章介紹了WPF轉(zhuǎn)換器IValueConverter用法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-01-01