每天学习一点点,成功增加一大步

.Net Core 笔记:C# Lambda表达式

C# zhanghui 856℃

今天研究了一下 C# Lambda 表达式,那是因为昨天有同事提醒了一下我说会不会 Lambda 表达式,以前也听说过 C# 中有 Lambda 表达式这个东东,但由于之前接触 C# 偏少,基本上是擦肩而过的没有深入去研究,所以一下子蒙了,这东西到底长啥样子。有什么特点,所以早上就开始寻找这个东东,看看它是什么样,不看不知道一看惊醒了,所以这 Lambda 表达式用法在前面学 typescript 接触过,也在前面学 linq 的用法的也是。

下面用个例子来显示 Lambda 表达式的优势。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.AspNetCore.Mvc;
namespace NetCode.Controllers
{
[Route("api/[controller]")]
public class LambdaController : Controller
{
private List<string> _list;
[HttpGet]
public dynamic Main()
{
_list = new List<string>();
_list.AddRange(new string[] { "ASP.NET课程", "PHP课程", "J2EE课程", "数据结构课程" });
Console.WriteLine("传统的委托代码示例:");
FindListDelegate();
Console.Write("\n");
Console.WriteLine("使用匿名方法的示例:");
FindListAnonymousMethod();
Console.Write("\n");
Console.WriteLine("使用 Lambda 的示例:");
FindListAnonymousMethod();
Console.Write("\n");
return new { };
}
/// <summary>
/// 传统的委托代码示例
/// </summary>
private void FindListDelegate()
{
Predicate<string> findPredicate = new Predicate<string>(IsBookCategory);
List<string> bookCategory = _list.FindAll(findPredicate);
foreach (string str in bookCategory)
{
Console.WriteLine("{0}\t", str);
}
}
private static bool IsBookCategory(string str)
{
return str.EndsWith("课程");
}
/// <summary>
/// 使用匿名方法的示例
/// </summary>
private void FindListAnonymousMethod()
{
List<string> bookCategory = _list.FindAll(delegate(string str){
return str.EndsWith("课程") ? true : false;
});
foreach (string str in bookCategory)
{
Console.WriteLine("{0}\t", str);
}
}
/// <summary>
/// 使用 Lambda 的示例
/// </summary>
private void FindListLambdaExpression()
{
List<string> bookCategory = _list.FindAll((string str)=>str.EndsWith("课程"));
foreach (string str in bookCategory)
{
Console.WriteLine("{0}\t", str);
}
}
}
}

执行结果

其实网上有许多关于这方面的资料就不多写了。

参考写得比较好的文章:

http://www.cnblogs.com/kingmoon/archive/2011/05/03/2035696.html

转载请注明:隨習筆記 » .Net Core 笔记:C# Lambda表达式