C# Lambda表達式用途深入理解
更新時間:2012年12月27日 14:42:10 作者:
假如我們想要從一個整型數(shù)組中取出其中是奇數(shù)的選項,其實現(xiàn)方式有很多,接下來通過三種方法的對比理解Lambda表達式的用途,需要了解的朋友可以參考下
假如我們想要從一個整型數(shù)組中取出其中是奇數(shù)的選項,其實現(xiàn)方式有很多,我們通過下面三種實現(xiàn)方式來對對比理解Lambda表達式的用途
方法一:命名方法
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表達式
var oddNums = Common.FilterArrayOfInt(nums, i => i % 2 != 0);
很顯然,使用Lambda表達式使代碼更為簡潔。
方法一:命名方法
復(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表達式
復(fù)制代碼 代碼如下:
var oddNums = Common.FilterArrayOfInt(nums, i => i % 2 != 0);
很顯然,使用Lambda表達式使代碼更為簡潔。
您可能感興趣的文章:
- C# 內(nèi)部類與Lambda表達式用法詳解
- C# 本地函數(shù)與 Lambda 表達式詳細介紹
- C# Lambda表達式及Lambda表達式樹的創(chuàng)建過程
- C# lambda表達式原理定義及實例詳解
- C# lambda表達式應(yīng)用如何找出元素在list中的索引
- C#匿名委托與Lambda表達式詳解
- C#中方法的直接調(diào)用、反射調(diào)用與Lambda表達式調(diào)用對比
- 理解C#中的Lambda表達式
- C#中使用Lambda表達式自定義比較器實現(xiàn)兩個列表合并實例
- C#基礎(chǔ)之Lambda表達式用法實例教程
- C#中Lambda表達式的用法
相關(guān)文章
Coolite Cool Study 1 在Grid中用ComboBox 來編輯數(shù)據(jù)
作為Coolite的第一個教程,我想展現(xiàn)給大家能夠體現(xiàn)Coolite強大的例子(當然也比官方例子稍微復(fù)雜一點)。2009-05-05
關(guān)于.NET/C#/WCF/WPF 打造IP網(wǎng)絡(luò)智能視頻監(jiān)控系統(tǒng)的介紹
本篇文章小編將為大家介紹,關(guān)于.NET/C#/WCF/WPF 打造IP網(wǎng)絡(luò)智能視頻監(jiān)控系統(tǒng)的介紹。需要的朋友參考下2013-04-04
this connector is disabled錯誤的解決方法
打開editor/filemanager/connectors/aspx/config.ascx修改CheckAuthentication()方法,返回true2008-11-11

