Linq用法笔记

一、什么是Linq?

LINQ即Language Integrated Query(语言集成查询),LINQ是集成到C#和Visual Basic.NET这些语言中用于提供查询数据能力的一个新特性。

LINQ是一种用来进行数据访问的编程模型,Linq可以用相同的语法访问不同的数据源,比如xml、数据库、注册表、事件日志等。

二、Linq包含哪些部分?

4418040-efe4890e641d1dcd

1、Linq to Sql组件:可以查询关系型数据库的数据,并可以提供其他操作,如检索、插入、修改、删除、排序、聚合、分区等。

2、Linq to DataSet组件:查询DataSet对象中的数据。

3、Linq to Object组件:可以查询IEnumerable或是IEnumerable 集合对象,即能够查询任何可以枚举的集合,如数组(Array和ArrayList)、泛型字典Dictinary等,以及用户自定义的集合,而不需要使用Linq提供程序或API。

4、Linq to XML组件:查询和操作XML结构的数据。

5、Linq to Entities:是 Entity Framework 的一部分并且取代 LINQ to SQL 作为在数据库上使用 LINQ 的标准机制。Entity Framework 是行业领先的对象-关系映射(ORM)系统。可以和多种数据库一起使用,并支持各种灵活、复杂的数据模型。

三、Linq的一些用法

1、简单的LINQ查询

static void Main(string[] args)

{

int[] marks = { 60, 77, 82, 46, 59, 98, 100, 84 };//定义一个数组

var good = from m in marks//使用LINQ找到所有数值大于等于60的数字

where m >= 60

select m;

foreach (int mark in good)//循环每一个结果

{

Console.WriteLine(mark);//输出结果

}

}

2、使用Lambda表达式的LINQ查询

static void Main(string[] args)

{

int[] marks = { 60, 77, 82, 46, 59, 98, 100, 84 };

var good = marks.Where(m => m >= 60);//使用Lambda表达式查询数值大于等于60的数字

foreach (int mark in good)//循环每一个结果

{

Console.WriteLine(mark);//输出结果

}

}

3、使用LINQ查询对象集合

class Program

{

static void Main(string[] args)

{

List students = new List//申明Student对象的集合

{

new Student{ StudentID=1, Sex=true, Name="小明", Birthday=Convert.ToDateTime("1984-1-1")},

new Student{ StudentID=2, Sex=false, Name="小张", Birthday=Convert.ToDateTime("1983-5-1")},

new Student{ StudentID=3, Sex=true, Name="小王", Birthday=Convert.ToDateTime("1983-2-15")},

new Student{ StudentID=4, Sex=false, Name="小丽", Birthday=Convert.ToDateTime("1985-3-8")}

};

//接下来使用LINQ查询所有年龄小于25岁的男性

var names = from s in students

where s.Sex == true&&s.GetAge()<25 //调用对象的方法

select s.Name;

foreach (string name in names)//循环输出结果

{

Console.WriteLine(name);

}

}

}

public class Student  //定义Student类

{

//以下是定义类中属性

public string Name { get; set; }

public int StudentID { get; set; }

public bool Sex { get; set; }

public DateTime Birthday { get; set; }

//以下是定义类中的方法

public int GetAge()

{

return DateTime.Now.Year - Birthday.Year;

}

}

四、Linq有什么好处?

1、容易上手,学习成本低

2、可以很大程度上减少代码量。

3、更快开发错误更少的应用程序。

4、可以很容易的合并数据源。

5、让新开发者开发效率更高。

6、任何对象或数据源都可以定制实现Linq适配器,为数据交互带来真正方便。

欢迎关注我的公众号(同步更新文章):DoNet技术分享平台

阅读原文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/272786.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用例图练习

转载于:https://www.cnblogs.com/fzuyzy/p/4925246.html

java excel row遍历空_Java poi读取,写入Excel,处理row和cell可能为空的情况

首先需要导入包import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.ss.usermodel.Workbook;然后写方法&a…

JQuery常用选择器总结

作为网站开发者来说&#xff0c;不可避免的需要和页面打交道&#xff0c;很多时候都需要去操作一些页面上的元素&#xff0c;掌握常用的Jquery选择器是十分有必要的。现从网上整理一些常用的Jquery选择器&#xff0c;希望能给大家带来一些开发上的便利。一、基本选择器&#xf…

java 常量 内存分配_Java内存分配之堆、栈和常量池

寄存器&#xff1a;最快的存储区&#xff0c;位于不同于其他存储区的地方——处理器内部。寄存器的数量极其有限&#xff0c;所以寄存器由编译器根据需求 进行分配。你不能直接控制&#xff0c;也不能在程序中感觉到寄存器存在的任何迹象。栈&#xff1a;存放基本类型的数据和对…

三种SQLServer分页查询语句笔记

作为程序员来说&#xff0c;与数据库打交道是十分频繁的分页查询是一个开发者必须掌握的基本知识点&#xff0c;目前整理了下面三种SQLServer分页查询语句的写法&#xff0c;仅供参考。一、Top Not IN 方式&#xff08;查询靠前的数据较快&#xff09;语法格式&#xff1a;sele…

sqlserver2008r2安装

转载于:https://www.cnblogs.com/sprinng/p/4932739.html

JQuery七个常犯的错误

1、 乱用选择器JQuery选择器调用代价很大&#xff0c;反复调用效率更低。应采用缓存对象的方法或采用链式调用的方式。//错误的写法$("#button").click(function(){ $(#list li).addClass(strong); $(#list li).css(color,red);});//正确的写法$("#button…

java流读取xml_使用FileInputStream(用于Java)读取XML文件?

这是交易.对于我的项目,我必须使用Java和XStream对随机树进行序列化和反序列化.我的老师制作了Tree / RandomTree算法,所以我不必担心.我不知道该怎么做是这样的&#xff1a;我使用FileInputStream来读/写我序列化和反序列化的xml文件,但是当我反序列化时,我不知道用于读取文件…

后台寻路系统的大体思路与流程

总的思路就是: 1, 通过前台unity的navigation的的接口: 获得顶点和三角形集合数据 2, 将前台的mesh数据转换成标准的obj格式数据 3. 强obj mesh数据经过一系列转换和优化, 生成recastnavigation插件寻路模块detour需要的导航数据 故制作了工具MakeNavmeshData生成detour需要的…

关于WCF、WebAPI、WCFREST、WebService之间的区别总结

在.net平台下&#xff0c;有大量的技术让你创建一个HTTP服务&#xff0c;像Web Service&#xff0c;WCF&#xff0c;现在又出了Web API。在.net平台下&#xff0c;你有很多的选择来构建一个HTTP Services。我分享一下我对Web Service、WCF以及Web API的看法。一、Web Service1、…

java 程序是由什么组成的 java_从零开始的JAVA -2. java程序的构成及命名规则

1.public classYD2.{3. public static voidmain (string args[ ])4. {5. System.out.println("我是一名学习JAVA的新人&#xff01;");6. }7.}第一行 public 代表这是一个公共类(可省略) class 是声明一个类&#xff0c;在他后面的YD 就是类名(类名可以随意写)第二行…

你应该知道的jQuery技巧【收藏】

jQuery的存在&#xff0c;让学习前端开发的人感到前端越来越容易入门了&#xff0c;用简单的几行代码就可以实现需求&#xff0c;但是&#xff0c;你真的会用jQuery么&#xff0c;当代码运行 后无法看到自己预期的效果&#xff0c;是不是觉得jQuery出了问题&#xff0c;其实&am…

LINQ表达式用法整理

收集一些Linq表达式中的一些比较常用的写法&#xff0c;希望能给大家工作当中带来一些便利。1. Where子句条件过滤结果集型&#xff08;集合数据使用这种&#xff0c;譬如数组、列表数据&#xff0c;同样适用于Datatable等多列数据集&#xff09;类SQL语句的写法&#xff0c;对…

Eclipse is running in a JRE, but a JDK is required 解决方法(转)

转自&#xff1a;http://comeonbabye.iteye.com/blog/1186239 安装Maven后每次启动出现警告信息: Eclipse is running in a JRE, but a JDK is requiredSome Maven plugins may not work when importing projects or updating source folders. 分两步解决问题: 1. 检查Eclipse正…

java线程归并排序_Java-归并排序 - FeanLau的个人空间 - OSCHINA - 中文开源技术交流社区...

public class MergeSort {static int number0;public static void main(String[] args) {int[] a {26, 5, 98, 108, 28, 99, 100, 56, 34, 1 };printArray("排序前&#xff1a;",a);MergeSort(a);printArray("排序后&#xff1a;",a);}private static voi…

收集一些优秀的DoNet开源项目

Paste_Image.pngJson.NEThttp://json.codeplex.com/ Json.Net是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单。通过Linq To JSON可以快速的读写Json&#xff0c;通过JsonSerializer可以序列化你的.Net对象。让你轻松实现.Net中所有类型(对象,基…

git初探

1 Linux下Git和GitHub环境的搭建 第一步&#xff1a; 安装Git&#xff0c;使用命令 “sudo apt-get install git” 第二步&#xff1a; 到GitHub上创建GitHub帐号 第三步&#xff1a; 生成ssh key&#xff0c;使用命令 “ssh-keygen -t rsa -C "your_emailyouremail.com&q…

java编程思想 初始化_《java编程思想》_第五章_初始化与清理

初始化和清理是涉及安全的两个问题&#xff0c;java中采用了构造器&#xff0c;并额外提供了“垃圾回收器”&#xff0c;对于不再使用的内存资源&#xff0c;垃圾回收器能自动将其释放。一、用构造器确保初始化java中&#xff0c;通过提供构造器&#xff0c;类的设计者可以确保…

OkHttp 上手

OkHttp 上手 优点 快、节省带宽。支持 HTTP&#xff0f;2 和 SPDY。HTTP&#xff0f;2 和 SPDY 允许对同一个主机的所有请求&#xff0c;使用一个 socket。如果不支持 SPDY 的话&#xff0c;可以用连接池减少请求等待时间。GZIP 缩小传输大小。缓存响应&#xff08;response ca…

关于Net开发中一些SQLServer性能优化的建议

一、 ExecuteNonQuery和ExecuteScalar 对数据的更新不需要返回结果集&#xff0c;建议使用ExecuteNonQuery。由于不返回结果集可省掉网络数据传输。它仅仅返回受影响的行数。如果只需更新数据用ExecuteNonQuery性能的开销比较小。 ExecuteScalar它只返回结果集中第一行的第一列…