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

走进Linq--Linq横空出世篇

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

系列文章导航:

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


如是我可以写这样的代码:

public static class Helper
{
    
public static IList<Book> SearchBookByPrice()
    {
         IList
<Book> books = //..//初始化一个Book集合
         IList<Book> results = new List<Book>();
        
foreach(Book book in books)
        {
            
if(book.Price < 50)
            {
                   results.Add(book);
            }
        }
        
return results;
    }
}  

现在是根据单价查找,那如果我要按照书籍名称查找或者按照作者查找怎么办?那只有重写这个方法了。但是你想想,我们的查找条件到最后只不过是一个true或者false,只要if()里面的表达式为true我们就将其添加到返回结果的集合中,我才不管里面的表达式详细的是什么呢,ok,那这样我们就可以进一步改进这个方法了:

public static class Helper
{
    
public delegate bool Condtion(Book book);

    
public static IList<Book> SearchBook(Condtion condition)
    {
        IList
<Book> books = //..//初始化一个Book集合
        IList < Book > results = new List<Book>();
        
foreach (Book book in books)
        {
            
if (condition(book))
            {
                results.Add(book);
            }
        }
        
return results;
    }
}

看看我们如何调用改进后的方法:

public bool ConditionTitle(Book book)
{
   
return book.Title == "yuyi";
}
IList
<Book> results = Helper.SearchBook(new Condition(ConditionTitle));
13
4

数据库热门文章

    数据库最新文章

      最新新闻

        热门新闻