標籤:java 使用 資料 io for cti
Lambda運算式
"Lambda運算式"是一個匿名函數,是一種高效的類似於函數式編程的運算式,Lambda簡化了開發中需要編寫的代碼量。它可以包含運算式和語句,並且可用於建立委託或運算式分類樹類型,支援帶有可綁定到委託或運算式樹狀架構的輸入參數的內聯運算式。所有Lambda運算式都使用Lambda運算子=>,該運算子讀作"goes to"。Lambda運算子的左邊是輸入參數(如果有),右邊是運算式或語句塊。
下面三個方法會幫你會容易理解到Lambda運算式的好處,這也是我在別的文章看到的,現在分享給你們,代碼如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LamdbaDemo
{
class Program
{
private static void FindListDelegate()
{
//先建立一個泛型List類
List<string> list = new List<string>();
list.AddRange(new String[] { "java課程", "J2EE課程", "ado.net課程", "資料結構課程" });
Predicate<string> findPredicate = new Predicate<string>(IsBookCategory);
List<string> bookCategory = list.FindAll(findPredicate);
foreach (string str in bookCategory)
{
Console.WriteLine("{0}\t", str);
}
}
//謂詞方法,這個方法將被傳遞給FindAll方法進行書籍分類判斷
private static bool IsBookCategory(string str)
{
return str.EndsWith("課程") ? true : false;
}
//使用匿名方法來進行搜尋過程
private static void FindListAnonymousMethod()
{
//先建立一個泛型的List類
List<string> list=new List<string>();
list.AddRange(new String[] { "java課程", "J2EE課程", "ado.net課程", "資料結構" });
//在這裡,使用匿名方法直接為委託建立一個代碼塊,而不用去建立單獨的方法
List<string> bookCategory = list.FindAll(delegate(string str)
{
return str.EndsWith("課程") ? true : false;
}
);
foreach (string str in bookCategory)
{
Console.WriteLine("{0}\t",str);
}
}
//使用Lambda來實現搜尋過程
private static void FindListLambdaExpression()
{
//先建立一個泛型List類
List<string> list=new List<string>();
list.AddRange(new String[] { "java課程", "J2EE課程", "ado.net課程", "資料結構" });
//在這裡,使用lambda來建立一個委託方法
List<string> bookCategory = list.FindAll((string str) => str.EndsWith("課程"));
foreach (string str in bookCategory)
{
Console.WriteLine("{0}\t", str);
}
}
static void Main(string[] args)
{
Console.WriteLine("傳統的委託程式碼範例:");
FindListDelegate();
Console.Write("\n");
Console.WriteLine("使用匿名方法的樣本:");
FindListAnonymousMethod();
Console.Write("\n");
Console.WriteLine("使用Lambda的樣本:");
FindListLambdaExpression();
}
}
}