关于linq使用建议】的更多相关文章

1.由于目前我做的项目使用的是SocanCode工具生成的三层框架,于是乎对于一些基本数据类型采用了可空类型编程 public CountryCode(int? id, string en_name, string local_name, string lettercode, int? numbercode){}: 当然这个只是针对的值类型,详情可见 使用可空类型(C# 编程指南) 可空类型(C# 编程指南) 2.还有就是针对int short 等必须加一个强制转换,然后进行==比较…
==== 目录 前 言第一部分 语言篇第1章 基本语言要素 / 2建议1:正确操作字符串 / 2建议2:使用默认转型方法 / 6建议3:区别对待强制转型与as和is / 9建议4:TryParse比Parse好 / 12建议5:使用int?来确保值类型也可以为null / 15建议6:区别readonly和const的使用方法 / 16建议7:将0值作为枚举的默认值 / 19建议8:避免给枚举类型的元素提供显式的值 / 20建议9:习惯重载运算符 / 22建议10:创建对象时需要考虑是否实现比较…
1.使用StringBuilder或者使用string.Format("{0}{1}{2}{3}", a, b, c, d)拼接字符串. 2.使用默认转型方法,比如使用类型内置的Parse.TryParse,或者如ToString.ToDouble.ToDateTime等方法. 3.区别对待强制转型.as.is. 4.TryParse比Parse好. double re;double.TryParse("aaa", out re) 5.使用int?确保值类型也可以为…
目录 前 言第一部分 语言篇第1章 基本语言要素 / 2建议1:正确操作字符串 / 2建议2:使用默认转型方法 / 6建议3:区别对待强制转型与as和is / 9建议4:TryParse比Parse好 / 12建议5:使用int?来确保值类型也可以为null / 15建议6:区别readonly和const的使用方法 / 16建议7:将0值作为枚举的默认值 / 19建议8:避免给枚举类型的元素提供显式的值 / 20建议9:习惯重载运算符 / 22建议10:创建对象时需要考虑是否实现比较器 / 2…
连载目录    [已更新最新开发文章,点击查看详细] 如果你使用过 LINQ,则会有丰富库(其中 Func 类型是 API 集的一部分)的经验. (如果尚不熟悉 LINQ,建议阅读 LINQ 教程,以及本文前面有关 lambda 表达式的文章.)表达式树提供与作为函数的参数的更丰富的交互. 在创建 LINQ 查询时,通常使用 Lambda 表达式编写函数参数. 在典型的 LINQ 查询中,这些函数参数会被转换为编译器创建的委托. 当想要进行更丰富的交互时,需要使用表达式树. 表达式树将代码表示为…
前言 本文已更新至http://www.cnblogs.com/aehyok/p/3624579.html .本文主要学习记录以下内容: 建议29.区别LINQ查询中的IEnumerable<T>和IQueryable<T> 建议30.使用LINQ取代集合中的比较器和迭代器 建议31.在LINQ查询中避免不必要的迭代 建议29.区别LINQ查询中的IEnumerable<T>和IQueryable<T> LINQ查询方法一共提供了两类扩展方法,在System…
建议31:在LINQ查询中避免不必要的迭代 无论是SQL查询还是LINQ查询,搜索到结果立刻返回总比搜索完所有的结果再将结果返回的效率要高. 示例代码: class MyList : IEnumerable<Person> { //为了演示需要,模拟了一个元素集合 List<Person> list = new List<Person>() { }, }, }, }, } }; /// <summary> /// 迭代次数属性 /// </summar…
建议30:使用LINQ取代集合中的比较器和迭代器 LINQ提供了类似于SQL的语法来实现遍历.筛选与投影集合的功能. static void Main(string[] args) { List<Salary> companySalary = new List<Salary>() { , Bonus = }, , Bonus = }, , Bonus = }, , Bonus = } }; Console.WriteLine("默认排序:"); foreach…
建议29:区别LINQ查询中的IEnumerable<T>和IQueryable<T> LINQ查询一共提供了两类扩展方法,在System.Linq命名空间下,有两个静态类:Enumerable类,它针对继承了IEnumerable<T>接口的集合进行扩展:Queryable类,它针对继承了IQueryable<T>接口的集合类进行扩扎.接口IQueryable<T>也是继承了IEnumerable<T>接口的,所以,致使两个接口的方…
建议26:使用匿名类型存储LINQ查询结果 从.NET3.0开始,C#开始支持一个新特性:匿名类型.匿名类型有var.赋值运算符和一个非空初始值(或以new开头的初始化项)组成.匿名类型有如下基本特性: 即支持简单类型也指出复杂类型.简单类型必须是一个非空初始值,复杂类型则是一个以new开头的初始化项. 匿名类型的属性是只读的,没有属性设置器,它一旦被初始化就不可更改. 如果两个匿名类型的属性值相同,那么就认为这两个匿名类型相等. 匿名类型可以再循环中用作初始化器. 匿名类型支持智能感知. 匿名…
比如list有2个值,当你运行完上述代码后,你会发现,你的ls中的Num没有按你预期的那样从0开始,导致这个问题的原因是:在你查询完毕后,执行的Count()方法,会导致查询语句中Num=num++再次执行一遍. 为了避免这个问题,建议最好不要在查询语句中使用运算语句(比如自加,自减等):…
前几天在老赵的博客上看到,Bill Chiles (Roslyn 编译器的Program Manager)写了一篇文章叫做<Essential Performance Facts and .NET Framework Tips>.这篇文章是一个14页的pdf,当时我是在地铁上在Lumia手机上看的,觉得很是不错,这里也建议大家直接下载阅读原文,我这里试着翻译一下,以加深自己印象,后面也有一些思考,以下是原文内容: ----------------------------------------…
系列目录 首先修复程序中的一个BUG这个BUG在GridPager类中,把sord修改为sort这个名称填写错误,会导致后台一直无法获取datagrid的排序字段 本来是没有这一讲的,为了使20行的代码精简成2行,我查阅了一些资料,借鉴了一些大神的建议,首先感谢第八讲中,11楼@nyth和15楼@红颜醉丶帝的建议投递,每一次的的排序要都一个判断这的确很麻烦,我们利用反射来解决这个问题. 先看原来的代码 //排序 if (pager.order == "desc") { switch (…
从自己的印象笔记里面整理出来,排版欠佳.见谅!   1.LINQ: 语言集成查询(Language Integrated Query) 实例: var q=      from c in categories      join p in products on c equals p.Category into ps select new{Category=c, Products=ps}; 2.LINQ 类型 LINQ to Objects(或称LINQ to Collection),这是LIN…
linq语句查询执行的时机 第一步获取数据源 int [] obejct = new int[]{1,2,3,4,5,6,7,8,9} 第二步定义查询 var even = numbers.where(p=>p%2==0).select(p=>{Console.WritLine("HI")}) 第三步执行查询 foreach(var item in even ){} 定义查询后,查询直到需要枚举结果是才被真正执行,这种方式称为""延迟执行"&q…
微软开源技术公司于发布了Tx,这是一个Apache 2协议的开源项目,可以使用日志/跟踪文件辅助调试,以及创建实时监控和告警系统. 下面是几个引人关注的功能-- 允许在原始事件源上使用LINQ 允许在真实事件源上使用"反应式扩展框架(Reactive Extensions)",而且支持事件序列的多路复用(单个包含不同类型事件的序列,其中事件的顺序为其发生顺序). 可以提供跨多个事件源的单一查询,而且用于实时查询和过去历史查询的API相同. 可以在历史日志和跟踪文件的一次读中执行多个查询…
LINQ to ADO.NET 包括两种独立的技术: LINQ to DataSet 和 LINQ to SQL. 使用 LINQ to DataSet 可以对DataSet 执行丰富而优化的查询,而使用 LINQ to SQL 可以直接查询 SQL Server 数据库架构. 由 LINQ to DataSet 和 LINQ to SQL 实现的 LINQ提供程序可以将源数据转换为基于 IEnumerable 的对象集合. 1. LINQ to DataSet DataSet 是赖以生成 AD…
闲言碎语 近期比较忙,但还是想写点什么,就分享一些基础的知识给大家看吧,希望能帮助一些linq新手,如果有其它疑问,可以进右上角群,进行交流探讨,谢谢. 开门见山 读这篇文章之前,我先说下,每一种搜索结果集,我都以三种方式变现出来,为啦更好的理解,希望不要嫌我啰嗦. 1.简单的linq语法 var ss = from r in db.Am_recProScheme select r; var ss1 = db.Am_recProScheme; string sssql = "select * f…
一.LINQ概念 LINQ是微软在.NetFramework3.5中新加入的语言功能,在语言中以程序代码方式处理集合的能力. 1.1 LINQ VS 循环处理 在我刚工作时候,对于集合对象的处理一般是采用循环这个集合处理,在处理实值类型上这样做效率还行,但是如果集合内是引用类型,使用LINQ就方便的多,例如一个程序要计算课程的总分和平均分,实体分别是Student和StudentScore 类的申明如下: /// <summary> /// 学生实体 /// </summary>…
IEnumerable和IEnumerable 1.IEnumerable查询必须在本地执行.并且执行查询前我们必须把所有的数据加载到本地.而且更多的时候.加载的数据有大量的数据是我们不需要的无效数据.但是我们却不得不传输更多的数据.做更多的无用功.使用IEnumerable,所有对于IEnumerable的过滤,排序等操作,都是在内存中发生的.也就是说数据已经从数据库中获取到了内存中,只是在内存中进行过滤和排序操作. 2.IQueryable却总能只提供你所需要的数据.大大减少了数据的传输IQ…
LINQ      语言集成查询 (LINQ) 是 Visual Studio 2008 中引入的一组功能,它在对象领域和数据领域之间架起了一座桥梁.可为 C# 和 Visual Basic 语言语法提供强大的查询功能. LINQ 引入了标准.易学的数据查询和更新模式,该技术可以扩展为几乎支持任何类型的数据存储.Visual Studio 包含 LINQ 提供程序的程序集,借助这些程序集,就能将 LINQ 用于 .NET Framework 集合.SQL Server 数据库.ADO.NET 数…
LINQ 查询语法与方法语法      通过使用 C# 3.0 中引入的声明性查询语法,介绍性 LINQ 文档中的多数查询都被编写为查询表达式. 但是,.NET 公共语言运行时 (CLR) 本身并不具有查询语法的概念. 因此,在编译时,查询表达式会转换为 CLR 确实了解的内容:方法调用. 这些方法称为“标准查询运算符”,它们具有如下名称:Where.Select.GroupBy.Join.Max.Average 等.可以通过使用方法语法而非查询语法来直接调用这些方法.      通常我们建议使…
部分内容摘自:http://www.th7.cn/Program/net/201511/692766.shtml C#框架里面主要提供了两种排序方式:Array.Sort Linq.Orderby. List.Sort排序简介 有许多猿猴对Sort原理进行了剖析,Sort排序实际上分为两部分,基于ClR内部排序,基于算法:深度限制快速排序(DepthLimitQuickSort).基于CLR排序是针对内置类型排序:深度限制快速排序是先快速排序,达到一定深度时,更改为堆排序.核心代码如下: pri…
本篇目录 早期阶段就要对应用进行负载测试 使用高性能类库 你的应用是CPU密集还是IO密集的 使用基于Task的异步模型,但要慎重 分发缓存和会话(session)状态 创建Web Gardens 巧妙地使用缓存和懒加载 不要在MVC视图中放C#代码 适当时使用Fire & Forget 为x64 CPU创建 使用服务器上的监视和诊断工具 分析运行中的应用 如果你在构建一个面向公众的web站点,那么在项目结尾时你想要实现的就是web负载性能良好.这意味着,你要确保你的产品在高负载下(50个并发用…
语言集成查询 (LINQ) 是一组技术的名称,这些技术建立在将查询功能直接集成到 C# 语言(以及 Visual Basic 和可能的任何其他 .NET 语言)的基础上.  借助于 LINQ,查询现在已是高级语言构造,就如同类.方法.事件等等. 对于编写查询的开发人员来说,LINQ 最明显的"语言集成"部分是查询表达式.  查询表达式是使用 C# 3.0 中引入的声明性查询语法编写的.  通过使用查询语法,您甚至可以使用最少的代码对数据源执行复杂的筛选.排序和分组操作.  您使用相同的…
找到了别人遇到和我一样的问题:http://ylad.codeplex.com/discussions/430095(英文) 一位叫做Mister Goodcat的提供了信息: Short answer: XPath is not supported on the phone. If you want to use HTML Agility Pack, use the LinqToXml features instead. Long version:  Enabling the XPath fe…
有这样一个案例: var filteredResult = from f in orgFileList select f; ; i < WorkStatusFilters.ListWorkStatus.Count; i++) { if( !WorkStatusFilters.ListWorkStatus[i].checkStatus) filteredResult = filteredResult.Where(f => f.WorkStatusFlag != i.ToString()); }…
前言 我相信很多从事.NET开发的,在.NET 3.5之前操作XML会比较麻烦,但是在此之后出现了Linq to Xml,而今天的主人公就是Linq to Xml,废话不多说,直接进入主题. 题外:最近由于身体原因去医院,耽误了不少时间,不然这篇随笔可能早就完成了. 实例项目下载  目录:  生成xml 创建简单的xml 创建注释 根据对象创建xml 创建属性 创建命名空间 查询并修改xml 通过文件读取xml 在指定节点前后添加新节点 添加属性到节点中 添加注释到指定节点前后 替换指定节点 删…
章节索引 建议11:区别对待 == 和Equals 建议12:重写Equals也要重写GetHashCode 建议13:为类型输出格式化字符串 建议14:正确实现浅拷贝和深拷贝 建议15:使用dynamic来简化反射实现 建议16:元素数量可变的情况下不应使用数组 建议17:多数情况下使用foreach进行循环遍历 建议18:foreach不能代替for 建议19:使用更有效的对象和集合初始化 建议20:使用泛型集合代替非泛型集合 建议11:区别对待 == 和Equals CLR中将“相等性”分…
前言 最早使用到Lambda表达式是因为一个需求:如果一个数组是:int[] s = new int[]{1,3,5,9,14,16,22};例如只想要这个数组中小于15的元素然后重新组装成一个数组或者直接让s返回一个新数组该怎么截取? 最开始的想法就是将这个s遍历一遍然后判断下再来重新组装成新的数组.好麻烦是不是? 于是便百度到了一个叫做Lambda的东西, 所以用了之后效果如下: class Program { static void Main(string[] args) { ,,,,,,…