您的位置:知识库 » 数据库

走进Linq-Linq to Objects(下)实例篇

作者: 横刀天笑  来源: 博客园  发布时间: 2008-09-23 18:39  阅读: 14803 次  推荐: 3   原文链接   [收藏]  

系列文章导航:

走进Linq--Linq横空出世篇

走进Linq-辉煌的背后

走进Linq-Linq大观园

不能不说的C#特性-对象集合初始化器

不能不说的C#特性-匿名类型与隐式类型局部变量

不能不说的C#特性-扩展方法

不能不说的C#特性-匿名方法和Lambda表达式

不能不说的C#特性-迭代器(上)及一些研究过程中的副产品

不能不说的C#特性-迭代器(下),yield以及流的延迟计算

走进Linq-Linq to Objects(上)基础篇

走进Linq-Linq to Objects(下)实例篇

走进Linq-Linq to SQL感性认识篇

走进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-How do I(4)拾遗补零篇第一节

走进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;

注意,联结的条件不能用”==”而应该用equals。

总结

本篇文章用实例对一些重点进行了举例说明,当然还有一些更多的用法没有提及,不过对于这些东西大家还是多做练习才能灵活运用。还有Linq的性能的问题,现在很多人担心Linq的性能,确实,Linq的性能还赶不上传统写法的性能。不过在某一些方面它们还是相差不大。但用Linq写一些代码的时候,真的可以获得意想不到的速率,比如有的时候需要对几个集合的数据进行联结或者分组,用传统的做法可能要嵌套几个循环,还可能要创建临时的集合,非常繁琐,如果用Linq则不一样了,Linq不仅仅是一项技术,还是一种编程的风格,至于性能的问题我觉得Rails之父说的那句话很经典:当性能未成为问题之前它永远不是个问题。欢迎大家提出问题,我会对文章进行更新。

PS:2.o里,string类实现了IEnumerable接口,现在你都可以用Linq处理字符串了,有意思吧。

3
0
标签:linq objects

数据库热门文章

    数据库最新文章

      最新新闻

        热门新闻