LINQ 基础(一)

本文介绍如何使用C#中的LinQ进行数据查询,并通过示例展示了如何使用Lambda表达式简化代码。从创建整数数组开始,文章逐步介绍了如何筛选、排序数据,并解释了Lambda表达式的语法和用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1           LinQ初体验:

1.1           

int[] numbers = new int[] { 6, 4, 3, 2, 9, 1, 7, 8, 5 };

var even = numbers

    .Where(p => p % 2 == 0)

    .Select(p => p)

    .OrderByDescending(p => p);

 

2           Lambda 表达式

ProcessString p = input => input.ToLower();

foreach (string name in foxRiver8)

{

    Console.WriteLine( p ( name ) ) ;

}

C#里,一个lambda表达式在句法上是写成一个参数列表,随后是 => 符号,随后是表达式在调用时要运算的表达式或者语句块:

params => expression

所以,当我们编写这样的lambda表达式时:

p => p.LastName == "Guthrie" 

我们是想表示,我们在定义的Lambda接受一个参数p,要运行的代码表达式返回p.LastName的值是否等于“Guthrie”。 我们将参数命名为p是不相干的,我也可以很容易地将其命名为oxfoo,或者我想要的任何名字。

不象匿名方法要求参数类型是明确地指明的,Lambda表达式允许省略参数类型,而允许它们根据用法来推断出类型。譬如,当我编写 p=>p.LastName == "Guthrie" 这个lambda表达式时,编译器推断出p参数属于Person类型,因为当前的Where扩展方法的对象是个范型的List< Person>集合。

Lambda参数的类型可以在编译时和被Visual Studiointellisense引擎推断出来,这意味着在编写lambda时你将获得完全的intellisense 和编译时检查。譬如,注意当我在下面健入 p.  时,Visual Studio Orcas是如何提供intellisense完成的,因为它知道 p Person类型:

 

 

: 假如你要给一个Lambda表达式明确地声明参数的类型的话,你可以在Lambda参数表里的参数名字前声明参数类型,象这样:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值