技术开发 频道

XML和LINQ实战详解


基础知识

1. LINQ的读法:(1)lin k (2)lin q
2. LINQ的关键词:from, select, in, where, group by, order by …
3. LINQ的注意点:必须以select或者是group by 结束。
4. LINQ的语义:
from 临时变量 in 集合对象或数据库对象
where 条件表达式
[order by条件]
select 临时变量中被查询的值
[group by 条件]

    LINQ的查询返回值的类型是临时变量的类型,可能是一个对象也可能是一个集合。并且LINQ的查询表达式是在最近一次创建对象时才被编译的。LINQ的查询一般跟var关键字一起联用 (什么是var?匿名对象) 。以下的两个查询表达式是一样的效果:
var q = from name in methods 
where (name.Name.Length > 15)
select name;

IEnumerable<MethodInfo> p = from name in methods
where (name.Name.Length > 15)
select name;
   所以这样的我们就可以对LINQ的查询表达式进行嵌套查询:

var q = from t in 
(from name in methods
where (!name.IsVirtual)
select name)
where (t.Name.Length > 15)
select t.Name;
   5. LINQ的全称:Language-Integrated Query
   6. LINQ的分类:LINQ to Object, LINQ to XML, LINQ to SQL, LINQ to ADO.NET

   对于LINQ to SQL方面的文章网路上已经有很多了,我将不再讨论这方面的内容。下面我主要讨论的是LINQ to XML方面的内容,顺便提一下LINQ to Object。 

LINQ to Object
MethodInfo[] methods = typeof(string).GetMethods(); 
var q = from t in methods
where (t.Name.Length > 15)
select t;
   LINQ to Object主要是基于.NET框架里的Lambda表达式来实现的,因此上面的代码运行结果等同于下面的代码:
MethodInfo[] methods = typeof(string).GetMethods(); 
var q = methods
.Where((method) => method.Name.Length > 15)
.Select((name) => name.Name);
0
相关文章