一个例子帮你搞懂C#语言高级特性系列(05) --- 语言集成查询(LINQ)

先看例子再做一个简单解释吧。

using System;
using System.Linq;

namespace Com.LoonStudio {
	class Program {
		static void Main(string[] args) {
			int[] x = { 13, 36, 5, 29, 10, 12, 40, 56 };
			var y = from temp in x where temp % 2 == 0 orderby temp select temp;

			foreach (int z in y) {
				Console.Write(z + "\t");
			}
			Console.WriteLine();
		}
	}
}

上面的例子将数组x中的偶数按照从小到大的顺序取出来。

作为软件开发人员,我们会有很多的程序会获取和操作各种各样的数据,这里的数据不仅仅是存储在关系数据库中的信息,也包括XML文档,本地内存中的DataSet,从WCF服务返回的数据等等。在.NET 3.5以前的版本中,与特定类型的数据打交道时,程序员要使用不同的API。LINQ(语言集成查询) API的意图是提供一种统一且对称的方式,让程序员在广义的数据上得到和操作数据。通过使用LINQ,我们能够在C#中直接创建被称为查询表达式的实体,如上面程序的第8行。

C#定义了很多查询操作符

from、in --- 用于定义LINQ表达式的主干,允许从合适的容器中提取数据子集

where --- 用于定义从一个容器里数据的限制条件

select --- 用于从容器中选择一个序列

join、on、equals、into --- 基于指定的键来做关联操作

orderby、ascending、descending  --- 指定按照升序或降序进行排列

group、by --- 用指定的值对数据进行分组

在使用LINQ进行查询时,还可以动态生成新的匿名类型,例如:from p in products select new { p.Name, p.Description }。

如果需要还可以通过Reverse()方法反转结果集,还可以使用Union()、Intersect()、Concat()、Except()进行并集、交集等操作。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值