C产品在市场上有哪些独特优势?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2413个文字,预计阅读时间需要10分钟。
前文介绍了C语言。
前文介绍了C#中表达式树的基本知识,在实际中,表达式树有很多用法,这里举几个例子,说明如何使用表达式树构建动态查询,从而扩展LINQ的查询方法。
在LINQ中,只要数据源实现了IQuerable<T>接口,表达式树就可以用来表示结构化查询。比如,LINQ提供了用来查询关系数据源的IQueryable<T>接口的实现,C#编译器在执行这类数据源查询时,会在运行时生成表达式树,然后,查询会遍历表达式树的数据结构,然后将其转换成针对特定数据源的合适的查询语言。
下面的几个例子演示了如何使用表达式树动态生成查询。
Example 1:动态生成Where和OrderBy
这个例子是MSDN上的例子,平常在C#中我们一般直接写LINQ代码,比如下面这个:
companies.Where(company => (company.ToLower() == "coho winery" || company.Length > 16)) .OrderBy(company => company)
对集合进行查询,然后排序等。这个时固定化了数据源,在有些时候,我们需要把这个查询“泛型化”,这就需要能够动态构造查询的能力,恰好我们可以使用表达式树,动态构建查询。
本文共计2413个文字,预计阅读时间需要10分钟。
前文介绍了C语言。
前文介绍了C#中表达式树的基本知识,在实际中,表达式树有很多用法,这里举几个例子,说明如何使用表达式树构建动态查询,从而扩展LINQ的查询方法。
在LINQ中,只要数据源实现了IQuerable<T>接口,表达式树就可以用来表示结构化查询。比如,LINQ提供了用来查询关系数据源的IQueryable<T>接口的实现,C#编译器在执行这类数据源查询时,会在运行时生成表达式树,然后,查询会遍历表达式树的数据结构,然后将其转换成针对特定数据源的合适的查询语言。
下面的几个例子演示了如何使用表达式树动态生成查询。
Example 1:动态生成Where和OrderBy
这个例子是MSDN上的例子,平常在C#中我们一般直接写LINQ代码,比如下面这个:
companies.Where(company => (company.ToLower() == "coho winery" || company.Length > 16)) .OrderBy(company => company)
对集合进行查询,然后排序等。这个时固定化了数据源,在有些时候,我们需要把这个查询“泛型化”,这就需要能够动态构造查询的能力,恰好我们可以使用表达式树,动态构建查询。

