`
yiyeqinghuasoon
  • 浏览: 643657 次
文章分类
社区版块
存档分类
最新评论

LINQ之运算符转换

 
阅读更多

1.AsEnumerable:将类型转换为泛型 IEnumerable

使用 AsEnumerable<TSource> 可返回类型化为泛型 IEnumerable 的参数。在此示例中,LINQ to SQL(使用默认泛型 Query)会尝试将查询转换为 SQL 并在服务器上执行。但 where 子句引用用户定义的客户端方法 (isValidProduct),此方法无法转换为 SQL。
解决方法是指定 where 的客户端泛型 IEnumerable<T> 实现以替换泛型 IQueryable<T>。可通过调用 AsEnumerable<TSource>运算符来执行此操作。

var q =
    from p in db.Products.AsEnumerable()
    where isValidProduct(p)
    select p;

语句描述:这个例子就是使用AsEnumerable以便使用Where的客户端IEnumerable实现,而不是默认的IQueryable将在服务器上转换为SQL并执行的默认Query<T>实现。这很有必要,因为Where子句引用了用户定义的客户端方法isValidProduct,该方法不能转换为SQL。

2.ToArray:将序列转换为数组

使用 ToArray <TSource>可从序列创建数组。

var q =
    from c in db.Customers
    where c.City == "London"
    select c;
Customer[] qArray = q.ToArray();

语句描述:这个例子使用 ToArray 将查询直接计算为数组。

3.ToList:将序列转换为泛型列表

使用 ToList<TSource>可从序列创建泛型列表。下面的示例使用 ToList<TSource>直接将查询的计算结果放入泛型 List<T>。

var q =
    from e in db.Employees
    where e.HireDate >= new DateTime(1994, 1, 1)
    select e;
List<Employee> qList = q.ToList();

4.ToDictionary:将序列转化为字典

使用Enumerable.ToDictionary<TSource, TKey>方法可以将序列转化为字典。TSource表示source中的元素的类型;TKey表示keySelector返回的键的类型。其返回一个包含键和值的Dictionary<TKey, TValue>。

var q =
    from p in db.Products
    where p.UnitsInStock <= p.ReorderLevel && !p.Discontinued
    select p;
Dictionary<int, Product> qDictionary =
    q.ToDictionary(p => p.ProductID);
foreach (int key in qDictionary.Keys)
{
    Console.WriteLine(key);
}

语句描述:这个例子使用 ToDictionary 将查询和键表达式直接键表达式直接计算为 Dictionary<K, T>。

本文摘自:http://www.cnblogs.com/lyj/archive/2008/03/13/1103893.html

分享到:
评论

相关推荐

    LINQ to SQL语句(18)之运算符转换

    LINQ to SQL语句(18)之运算符转换

    Linq 的一些例子

    LINQ - 转换运算符 此示例显示了不同用途的转换运算符 LINQ - 其它运营商 此示例显示了其他运营商的不同用途 LINQ - 自定义序列运算符 此示例显示了不同用途的自定义序列运算符 LINQ - 代接手经营 此示例显示了不同...

    LINQ to SQL手册

    LINQ to SQL语句(18)之运算符转换 LINQ to SQL语句(19)之ADO.NET与LINQ to SQL LINQ to SQL语句(20)之存储过程 LINQ to SQL语句(21)之用户定义函数 LINQ to SQL语句(22)之DataContext LINQ to SQL语句(23)之动态查询...

    linq详细案例.

    linq详细案例.linq语法,开放式并发控制和事务,Null语义和DateTime,String,对象标识,对象加载,运算符转换,ADO.NET与LINQ to SQL

    LINQ_to_SQL语法及实例大全

    LINQ to SQL语句(18)之运算符转换 59 1.AsEnumerable:将类型转换为泛型 IEnumerable 59 2.ToArray:将序列转换为数组 59 3.ToList:将序列转换为 泛型列表 59 4.ToDictionary:将序 列转化为字典 60 LINQ to SQL...

    c# Linq WebService rss

    •PasteXmlAsLinq: 能够自动将 XML 转换为 LINQ to XML 的 Visual Studio 外接程序。 •QueryVisualizer: 使 LINQ to SQL 开发人员能够看到其查询的 SQL 代码,并能在网格中查看查询的结果。 •Reflector: 使用 LINQ...

    java种菜源码-clojure-linq-examples:C#的101个LINQ示例转换为Clojure

    为了进行并排比较,原始C#源代码显示在等效的Clojure翻译之上。 输出显示了运行Clojure示例的控制台输出。 以...结尾的输出说明仅显示部分响应。 使用的 C# 和 Clojure 实用程序的源代码包含在它们使用的第一部分下...

    java8stream源码-101_linq_examples_java8:C#的101个LINQ示例转换为Java8

    为了进行并排比较,原始C#源代码显示在等效的Java8翻译之上。 输出显示了运行Java示例的控制台输出。 以...结尾的输出说明仅显示部分响应。 使用的 C# 和 Clojure 实用程序的源代码包含在它们使用的第一部分下。 ...

    C#操作LINQ to SQL组件进行数据库建模的基本教程

    在运行时,LINQ to SQL 根据LINQ表达式或查询运算符生成SQL语句,发送到数据库进行操作。数据库返回后,LINQ to SQL负责将结果转换成实体类对象。 建立实体类的方法有很多,例如LINQ to SQL设计器,手动编码建立,...

    C#本质论(第3版)

    9.2.7 转换运算符的指导原则 9.3 引用其他程序集 9.3.1 更改程序集目标 9.3.2 引用程序集 9.3.3 类型封装 9.4 定义命名空间 9.5 xml注释 9.5.1 将xml注释与代码构造关联到一起 9.5.2 生成xml文档文件 9.6 ...

    Visual C# 2008从入门到精通.pdf

    第3章 运算符和类型强制转换 3.1 运算符 3.1.1 赋值运算符 3.1.2 算术运算符 3.1.3 条件运算符 3.1.4 简化运算符 3.1.5 checked和unclaecked运算符 3.1.6 关系运算符 3.1.7 sizeo运算符和typeoiFj运算符 3.1.8 可空...

    DevExtremeFilterBuilder:从DevExtreme的FilterBuilder过滤器规范对象创建LINQ表达式

    该库提供了一个类,该类将生成的转换为,任何LINQ提供程序都可以使用该。 它提供以下功能: 支持所有内置的运算符。 支持自定义条件运算符。 支持自定义条件参数解析 简单类型(字符串,数字,枚举)的默认参数...

    Visual C# 2010程序设计教程PPT

    数据类型转换 运算符与表达式 第3章 程序流程控制 选择结构及if,switch语句 循环结构及循环语句 跳出循环 异常处理及try-catch-finally语句 第4章 数组与集合 数组的概念及定义 一维...

    C# 程序设计手册(WORD)

    使用转换运算符 99 在结构之间实作用户定义的转换 101 使用运算符多载建立复数类别 103 覆写 Equals() 和运算符 == 的方针 105 类别和结构 108 类别 112 对象 115 结构 118 使用结构 119 继承 122 多型 126 使用 ...

Global site tag (gtag.js) - Google Analytics