LINQ学习总结:
LINQ使用的关键字 :select, filter, sort, group, and transform data.
1.LINQ to Objects:查找内存中的对象集合。
2.LINQ to XML:可以不通过C#类直接读取XML文档。
3.LINQ to Entities:不写读取数据库的代码便可以读取数据库信息。
一、LINQ基础知识
其中,最简单的就是LINQ to Objects,通过这种方式,可以不用在C#中写迭代循环语句(foreach),
例如,你想查找名字以D开头的员工信息,
按照foreach的传统方式,可以如下描述:
// 通过Helper方法获取员工集合
List<EmployeeDetails> employees = db.GetEmployees();
// 查找所有符合条件的员工集合(即名字以D开头的)
List<EmployeeDetails> matches = new List<EmployeeDetails>();
foreach (EmployeeDetails employee in employees)
{
if (employee.LastName.StartsWith("D"))
{
matches.Add(employee);
}
}
//通过GridView展示数据
gridEmployees.DataSource = matches;
gridEmployees.DataBind();
我们可以用LINQ方式重写以上代码:
List<EmployeeDetails> employees = db.GetEmployees();
IEnumerable<EmployeeDetails> matches;
matches = from employee in employees
where employee.LastName.StartsWith("D")
select employee;
//通过GridView展示数据
gridEmployees.DataSource = matches;
gridEmployees.DataBind();
注意,LINQ返回的结果是实现了IEnumerable<T>的iterator对象。
LINQ是如何执行查询或者过滤结果的呢?
答案: 它是通过数据类型进行查询的,例如查询LINQ to Entities ,它是把LINQ表达式转换成数据库执行语句。因此,它必须与数据库进行连接。
所有的LINQ语句必须要包含select 和from 关键字,
例如 matches = from employee in employees ...;
in,表示要操作的数据源; from,则表示数据源中不可分割的数据项的别名,可以在后面的过滤,排序或者分组等条件中直接使用这个别名。
注意,与直接用foreach操作集合相比较,LINQ的方式效率通常会较低。
LINQ有一个非常有意思的用法,那就是你可以把你要查询的某些数据动态的创建一个匿名对象保存你需要的信息:
例如:var matches = from employee in employees
select new {First = employee.FirstName, Last = employee.LastName};
通过此方式,便 可以返回隐式创建的对象集合,集中中的对象只有First和Last属性。
如果你不想使用匿名对象,你也可以选择定义一个新的类,然后再LINQ中直接使用它,如下例子:
类:
public class EmployeeName
{
public string FirstName
{ get; set; }
public string LastName
{ get; set; }
}
LINQ查询:
IEnumerable<EmployeeName> matches = from employee in employees
select new EmployeeName {FirstName = employee.FirstName,
LastName = employee.LastName};
因为属性都是 public的,所以LINQ创建对象,并为对象的属性赋值,最后生成结果集。
Filtering and Sorting
1.在前面的例子中,我们已经使用过了where过滤条件语句:
IEnumerable<EmployeeDetails> matches;
matches = from employee in employees
where employee.LastName.StartsWith("D")
select employee;
其中,where后面跟的是条件判断语句,根据每一个item的值进行判断,如果是true则包含在结果结果当中,为false则不包含在结果中。 而且,条件表达式可以用"&&(and)","||(or)",以及关系关系操作符(">","<","=")等等符号进行连接。
2.LINQ表达式有一个挺有用的特征就是:可以在语句中调用自定义的方法,只要该方法返回true or false就可以了,请看下面的例子:
Method:
private bool TestEmployee(EmployeeDetails employee)
{
return employee.LastName.StartsWith("D");
}
LINQ:
IEnumerable<EmployeeDetails> matches;
matches = from employee in employees
where TestEmployee(employee)
select employee;
3.关于order by 的用法说明:
先看简单的说明例子:
IEnumerable<EmployeeDetails> matches;
matches = from employee in employees
orderby employee.LastName, employee.FirstName
select employee;
其中,排序的类型一般是实现了IComparable接口的,如date,string,numeric data等.Net的数据类型都实现了该接口。但是,我们也可以使用没有实现IComparable接口的类型,后面再对其进行详细说明。
分享到:
相关推荐
### ASP.NET中LINQ中文教程知识点详解 #### 一、LINQ简介 - **定义**:LINQ(Language Integrated Query)是一种集成在.NET Framework 3.5中的技术,旨在为.NET开发者提供统一的数据查询和处理方式。LINQ使得开发者...
本篇将深入探讨ASP.NET 3.0中LINQ的新用法及其在实际开发中的应用。 **一、LINQ简介** LINQ(Language Integrated Query)是一种在.NET Framework中集成的查询语言,它允许开发者使用一致的语法进行数据库、XML、...
在这个场景中,我们将讨论如何在ASP.NET MVC项目中实现一个使用LINQ to SQL的登录功能。 LINQ(Language Integrated Query,语言集成查询)是.NET Framework的一部分,它允许开发者使用C#或VB.NET等语言的语法来...
3. **C#与VB.NET中的LINQ**:学习如何在C#或VB.NET中使用LINQ查询表达式和方法语法。`Default.aspx.cs`是C#后台代码文件,其中可能包含使用LINQ的示例代码。 4. **数据库交互**:通过`App_Data`目录下的`DB_51aspx`...
ASP.NET 3.5中的LINQ(Language Integrated Query,语言集成查询)技术是微软推出的一种强大的数据查询工具,它允许开发者使用类似SQL的语法在.NET编程语言中进行对象查询。这个压缩包文件包含了一系列关于LINQ在ASP...
在IT行业中,掌握ASP.NET、LINQ和C#等技术是成为一名专业开发人员的关键。本篇将深入解析这些技术的相关面试题,帮助你提升对这些核心概念的理解,从而在面试中表现出色。 ### ASP.NET ASP.NET是由微软开发的一种...
这是accessoft上,作者:煮江品茶 写的一个LINQ例子,这几天找了很多参考都不是很好,今天找到这...LINQ是VS中的一个通用的数据查询技术,该技术简化了对SQL、XML等数据的查询。本示例介绍LINQ的标准查询符的使用方法。
以上代码展示了如何在ASP.NET MVC项目中使用Linq to SQL处理数据库操作,以及如何实现简单的分页功能。通过这种方式,你可以创建一个高效且易于维护的Web应用,同时提高用户在浏览大量数据时的体验。
总结起来,这个压缩包提供了关于ASP.NET 3.5中使用LINQ的详尽指南,无论你是初学者还是有经验的开发者,都能从中受益。通过学习这些知识,你将能够更高效地管理和操作数据,提高你的ASP.NET应用程序的性能和用户体验...
### ASP.NET中Linq的一些总结和例子 #### 一、Linq简介与基本用法 Linq(Language Integrated Query)是微软在.NET Framework 3.5版本中引入的一项技术,它提供了一种全新的方式来查询数据集合。Linq不仅简化了...
ASP.NET中LINQ+热键TAB的简单使用,介绍了用“LINQ TO SQL类”+数据展示控件+LINQ数据源展示数据;热键TAB,介绍的是网页中多文本框输入时,用鼠标进行切换效率低,使用热键TAB,就可以提高输入效率。
【标题】"一个简单的基于ASP.NET3.5 +LINQ的实例程序...通过学习这个实例,开发者可以了解到如何在ASP.NET3.5环境中有效地运用LINQ,提高代码的可读性和效率,同时掌握如何将这些技术整合到实际的Web应用程序开发中。
本文将详细介绍一个典型的ASP.NET MVC应用中使用的LINQ查询示例,并对其背后的原理进行深入剖析。 #### 二、LINQ查询概述 在上述示例中,我们看到了一段典型的LINQ查询语法: ```csharp var query = from s in ...
在ASP.NET应用程序中,LINQ to SQL 和 Entity Framework 是两个常用的数据访问技术。它们允许开发人员以面向对象的方式操作数据库,而无需编写复杂的SQL语句。这不仅提高了代码的可读性和可维护性,也减少了出错的...
在这个Asp.Net+MVC+Linq to SQL2005的入门实例中,我们将深入探讨这三个层面及其相互作用。 1. 表现层(Presentation Layer): 这是用户与应用交互的部分,通常由ASP.NET MVC框架负责。MVC(Model-View-...
在ASP.net中,可以通过Linq to SQL结合存储过程来实现这一功能。具体步骤如下: 1. **创建存储过程**:首先,在数据库中创建一个包含参数(如当前页码、每页显示条数等)的存储过程,用于获取指定范围内的数据。 2....
通过对这些代码的学习和实践,你可以深入理解Asp.NET MVC和Linq的结合使用,掌握Web应用中数据操作的基本技能。同时,作为初学者,这个项目也可以作为一个学习资源,帮助你逐步熟悉整个开发流程。
以上知识点是基于标题和描述中提到的"ASP.NET MVC+LINQ TO SQL+MvcPager分页",它们构成了一个Web应用程序开发的核心技术栈。通过深入理解和实践这些技术,你可以构建出高效、易于维护的Web应用。
LINQ 提供了一条更常规的途径即给 .Net Framework 添加一些可以应用于所有信息源( all sources of information )的具有多种用途( general-purpose )的语法查询特性( query facilities ),这是比向开发语言和...
在ASP.NET MVC中使用Linq to SQL进行数据库操作,可以极大地提高开发效率和代码的可读性。以下是一些关于ASP.NET MVC结合Linq to SQL进行增删改查的基本操作的知识点: 1. **创建数据库上下文(DataContext)**:...