走进Linq-Linq to Objects(下)实例篇
[1] 走进Linq-Linq to Objects(下)实例篇
[2] 走进Linq-Linq to Objects(下)实例篇
[3] 走进Linq-Linq to Objects(下)实例篇
[4] 走进Linq-Linq to Objects(下)实例篇
[5] 走进Linq-Linq to Objects(下)实例篇
[6] 走进Linq-Linq to Objects(下)实例篇
[2] 走进Linq-Linq to Objects(下)实例篇
[3] 走进Linq-Linq to Objects(下)实例篇
[4] 走进Linq-Linq to Objects(下)实例篇
[5] 走进Linq-Linq to Objects(下)实例篇
[6] 走进Linq-Linq to Objects(下)实例篇
系列文章导航:
不能不说的C#特性-迭代器(下),yield以及流的延迟计算
走进Linq-Linq to SQL How do I(1)
走进Linq-Linq to SQL How do I(2)
走进Linq-Linq to SQL How do I(3)
走进Linq-Linq to SQL源代码赏析 Table
走进Linq-Linq to SQL源代码赏析之Provider的初始化
走进Linq-Linq to SQL源代码赏析,通过Linq to SQL看Linq
联结
Join也是个蛮复杂的表达式
如果给你一个UserId,你要根据UserId从users集合里先找出UserName,然后根据UserName找出所有下面的Post:
var dataSource = from post in posts
join user in users on post.UserName equals user.UserName
where user.UserId = 2
select post;
join user in users on post.UserName equals user.UserName
where user.UserId = 2
select post;
注意,联结的条件不能用”==”而应该用equals。
总结
本篇文章用实例对一些重点进行了举例说明,当然还有一些更多的用法没有提及,不过对于这些东西大家还是多做练习才能灵活运用。还有Linq的性能的问题,现在很多人担心Linq的性能,确实,Linq的性能还赶不上传统写法的性能。不过在某一些方面它们还是相差不大。但用Linq写一些代码的时候,真的可以获得意想不到的速率,比如有的时候需要对几个集合的数据进行联结或者分组,用传统的做法可能要嵌套几个循环,还可能要创建临时的集合,非常繁琐,如果用Linq则不一样了,Linq不仅仅是一项技术,还是一种编程的风格,至于性能的问题我觉得Rails之父说的那句话很经典:当性能未成为问题之前它永远不是个问题。欢迎大家提出问题,我会对文章进行更新。
PS:2.o里,string类实现了IEnumerable接口,现在你都可以用Linq处理字符串了,有意思吧。