C# Find()和First()与FirstOrDefault(】的更多相关文章

操作符 如果源序列是空的 源序列只包含一个元素 源序列包含多个元素 First 抛异常 返回该元素 返回第一个元素 FirstOrDefault 返回default(TSource) 返回该元素 返回第一个元素 Last 抛异常 返回该元素 返回最后一个元素 LastOrDefault 返回default(TSource) 返回该元素 返回最后一个元素 Single 抛异常 返回该元素 抛异常 SingleOrDefault 返回default(TSource) 返回该元素 抛异常  我们拿事实…
First与FirstOrDefault的方法,均是返回集合中的第一个元素,区别在于如果没有结果,前者(First)会有抛出异常,后者(FirstOrDefault)会返回默认值.Last与LastOrDefault的方法,均是返回集合中的最后一个元素,区别在于如果没有结果,前者(Last)会有抛出异常,后者(LastOrDefault)会返回默认值. 看下面的例子: 上例中,stringList集合有好几个元素.在result集合,它是返回以"u"开头的元素"ury&quo…
Find方法和FirstOrDefault方法效果相同,都是返回满足条件的第一个元素,如果没有该元素,则返回null. 那么这两个扩展方法有什么不同? 1)Find方法是.netFramework2.0的,而FirstOrDefault是3.5的. 2)Find方法只能在List<T>上使用,而后者能更广泛应用在IEnemerable<T>上. 3)依据http://stackoverflow.com/questions/14032709/performance-of-find-v…
·First - 返回集合中的第一个元素:不延迟 ·FirstOrDefault - 返回集合中的第一个元素(如果没有则返回默认值):不延迟 ·Last - 返回集合中的最后一个元素:不延迟 ·LastOrDefault - 返回集合中的最后一个元素(如果没有则返回默认值) ·ElementAt - 返回集合中指定索引的元素:不延迟 ·ElementAtOrDefault - 返回集合中指定索引的元素(如果没有则返回默认值):不延迟 ·Contains - 判断集合中是否包含有某一元素:不延迟…
http://stackoverflow.com/questions/793897/check-if-keyvaluepair-exists-with-linqs-firstordefault 问题: I have a dictionary of type Dictionary<Guid,int> I want to return the first instance where a condition is met using var available = m_AvailableDict.…
FirstOrDefault:取序列中满足条件的第一个元素,如果没有元素满足条件,则返回默认值(对于可以为null的对象,默认值为null,对于不能为null的对象,如int,默认值为0)…
1.SingleOrDefault和FirstOrDefault的区别 SingleOrDefault 只取一个 如果没有数据等于 null, 如果>1  异常 FirstOrDefault  只取一个  如果没有数据等于 null, 如果>1 取第一个 2.First和FirstOrDefault的区别 First:取序列中满足条件的第一个元素,如果没有元素满足条件,则抛出异常   FirstOrDefault:取序列中满足条件的第一个元素,如果没有元素满足条件,则返回默认值(对于可以为nu…
最近遇到一个关于Linq的问题,.where(provider).FirstOrDefault();和.FirstOrDefault(provider);的性能比较 关于这个主要有以下三种说法,但这方面的资料比较少,我找到的就下面着几个地方. 第一种说法:.where(provider).FirstOrDefault()比较快,支持这个观点的资料:http://stackoverflow.com/questions/8663897/why-is-linq-wherepredicate-first…
操作符 如果源序列是空的 源序列只包含一个元素 源序列包含多个元素 First 抛异常 返回该元素 返回第一个元素 FirstOrDefault 返回default(TSource) 返回该元素 返回第一个元素 Last 抛异常 返回该元素 返回最后一个元素 LastOrDefault 返回default(TSource) 返回该元素 返回最后一个元素 Single 抛异常 返回该元素 抛异常 SingleOrDefault 返回default(TSource) 返回该元素 抛异常 很明显,如果…
一.firstordefault() 和 first() class Program { static void Main(string[] args) { List<Emp> list = new List<Emp> { ", Address="河北石家庄"}, ", Address="山东济南"}, ", Address="河南郑州"} }; //firstordefault 如果找不到返…
FirstOrDefault方法的使用总结: 现有一集合对象list, 其中集合对象调用FirstOrDefault()方法, list.FirstOrDefault()返回集合中第一个元素, 若集合的Count为0,则返回默认值(引用类型集合返回null,值类型集合如int类型集合返回0) 其中FirstOrDefault方法有一个Func<TSource, bool> predicate 参数的重载方法, 返回满足条件的序列中的第一个元素,实例如下: class Program { sta…
Enumerable.First() 方法:返回序列中的第一个元素,如果源序列为空,则抛异常. Enumerable.FirstOrDefault ()方法返回序列中的第一个元素:如果序列中不包含任何元素,则返回默认值. Enumerable.Single)()方法返回序列的唯一元素:如果该序列并非恰好包含一个元素,则会引发异常. Enumerable.SingleOrDefault()方法返回序列中满足指定条件的唯一元素:如果这类元素不存在,则返回默认值:如果有多个元素满足该条件,此方法将引发…
关于Linq中First.FirstOrDefault:Single.SingleOrDefault等方法的说明 这里以First.FirstOrDefault进行说明,其他类似. 1.First:取序列中满足条件的第一个元素,如果没有元素满足条件,则抛出异常 2.FirstOrDefault:取序列中满足条件的第一个元素,如果没有元素满足条件,则返回默认值(对于可以为null的对象,默认值为null,对于不能为null的对象,如int,默认值为0) 3.Single,返回序列中的唯一一条记录,…
使用resharper时对linq使用的FirstOrDefault 一直产生一个警告,…
操作符 如果源序列是空的 源序列只包含一个元素 源序列包含多个元素 First 抛异常 返回该元素 返回第一个元素 FirstOrDefault 返回default(TSource) 返回该元素 返回第一个元素 Last 抛异常 返回该元素 返回最后一个元素 LastOrDefault 返回default(TSource) 返回该元素 返回最后一个元素 Single 抛异常 返回该元素 抛异常 SingleOrDefault 返回default(TSource) 返回该元素 抛异常 很明显,如果…
1. Find方法只能在List<T>上使用,而后者能更广泛应用在IEnemerable<T>上. Find最终是建立在Array的查找之上,而在IEnemerable上的FirstOrDefault是使用foreach查找的.因此,Find速度会比FirstOrDefault快很多,据测试可能会快一倍以上. 2. First:取序列中满足条件的第一个元素,如果没有元素满足条件,则抛出异常 3. FirstOrDefault:取序列中满足条件的第一个元素,如果没有元素满足条件,则返…
在使用EntityFramework开发时,.NET的System.Linq.Enumerable类为我们提供了许多Linq方法. 给大家分享一下关于First.FirstOrDefault.Single.SingleOrDefault几个方法的区别实例及使用场景,首先是关于这几个方法的定义: ● First:返回序列中的第一条记录,如果没有记录,则引发异常. ● FirstOrDefault:返回序列中的第一条记录,如果没有记录,则返回默认值(List<int> 返回0, List<s…
在工作中我们经常会遇到有关LINQ 的一些问题.这时我们就用到lambda 表达式. 下面是我在工作遇到的. First  and FirstOrDefault  这两方法.我今天把它记录一下. 需要注意的是我标注红色的部分,这是它们俩的区别. First  and FirstOrDefault #region Enumberable First() or FirstOrDefault() /// <summary> /// 返回序列中的第一个元素:如果序列中不包含任何元素,则返回默认值. /…
使用resharper时对linq使用的FirstOrDefault 一直产生一个警告, 解决办法: 参考The Linq FirstOrDefault() Method and Null Resultsets…
在C#的List集合类的操作过程中,有时候我们会使用到List集合的SingleOrDefault方法和FirstOrDefault等方法,这2个方法都是System.Linq.Enumerable类为我们提供了Linq方法.那的SingleOrDefault方法和FirstOrDefault等方法有啥不同之处呢.其实除了上面2个方法,还有First()方法和Single()方法等类似方法. 以下是各个方法的不同之处,以及具体含义: (1)First方法:返回List集合序列中的第一个符合条件的…
在C#的List集合中查找一个符合条件的元素,一般我们会用First方法或者FirstOrDefault方法来返回第一个符合条件的对象,First方法和FirstOrDefault的调用都是使用Lambda表达式方式来书写查询语句条件.其实建议统一使用FirstOrDefault方法来查询List集合中符合条件的第一个记录,因为First方法在无法查到任何符合条件信息的对象的情况下,会直接抛出System.InvalidOperationException异常,提示序列不包含任何匹配元素.而使用…
在C#的List集合的操作中,有时候我们需要根据相关条件快速从List集合中获取到第一个符合条件的实体对象,例如有个全校班级的List集合,我们需要根据班级代码快速从List集合中查找出班级信息.可以使用传统的for或者foreach循环来单独比对查询来实现,其实还可以通过Lambda表达式中的FirstOrDefault方法快速来查找,只需一条语句即可查找出来. 例如有个全校班级信息的List集合List<StudentClass>  classList,需要快速从classList集合中查…
First()表示取集合中的第一个元素,如果集合为空,则抛异常. FirstOrDefault()表示取集合的第一个元素. 如果集合为空,且集合元素是引用类型,则返回null. 如果集合为空,且集合元素是值类型,则返回默认值. 注: 可以使用type(T).IsValueType来判断任意类型是否值类型…
本文告诉大家,在获得数组第一个元素时,使用哪个方法性能更高. 需要知道,两个方法都是 Linq 的方法,使用之前需要引用 Linq .对于 List 等都是继承可枚举Enumerable这时获取第一个元素可以使用FirstOrDefault.如果使用Find那么需要数组的类型是IList. 下面写一个简单的例子 反编译 Find 可以看到下面代码,下面的代码删了一些代码,让大家比较容易看到 Find 使用的是 for 然后使用判断 private T[] _items; public T Fin…
问题描述 最近在使用ef core连接oracle的发现Find.FirstOrDefault.Skip Task分页等等方法执行失败.使用的是docker安装的oracle11,错误如下图: 解决办法 使用builder.UseOracleSQLCompatibility("11")方法来指定oracle版本.…
https://www.cnblogs.com/1312mn/p/9212325.html…
注意:以下内容如果没有特别申明,默认使用的EF6.0版本,code first模式. 推荐MiniProfiler插件 工欲善其事,必先利其器. 我们使用EF和在很大程度提高了开发速度,不过随之带来的是很多性能低下的写法和生成不太高效的sql. 虽然我们可以使用SQL Server Profiler来监控执行的sql,不过个人觉得实属麻烦,每次需要打开.过滤.清除.关闭. 在这里强烈推荐一个插件MiniProfiler.实时监控页面请求对应执行的sql语句.执行时间.简单.方便.针对性强. 如图…
当前Abp版本1.2,项目类型为MVC5. 以属性的形式扩展AbpSession,并在"记住我"后,下次自动登录也能获取到扩展属性的值,版权归"角落的白板报"所有! step1.添加IAbpSessionExtensions接口: /// <summary> /// IAbpSession Extensions 登录时"记住我"保存Cookie,也就是说关闭后再打开不重新登录的话,取得到值. /// </summary>…
阅读目录 前言 单元测试 纠正错误,重新出发 结语 一.前言 实际编码已经写了2篇了,在这过程中非常感谢有听到观点不同的声音,借着这个契机,今天这篇就把大家提出的建议一个个的过一遍,重新整理,重新出发,为了让接下去的DDD之路走的更好. 二.单元测试 蟋蟀兄在我的第三篇文章下面指出: 这点其实是我偷懒了,单元测试其实不单单在DDD中是一个很重要的一环,在我们崇尚敏捷,快速迭代的大背景下,有良好的单元测试模块可以保证快速迭代下的项目质量.有甚至可以使用测试先行的TDD模式. 单元测试的好处我就不多…
阅读目录 前言 怎么卖 领域服务的使用 回到现实 结语 一.前言 上篇中我们讲述了“把商品卖给用户”中的商品和用户的初步设计.现在把剩余的“卖”这个动作给做了.这里提醒一下,正常情况下,我们的每一步业务设计都需要和领域专家进行沟通,尽可能的符合通用语言的表述.这里的领域专家包括但不限于当前开发团队中对这块业务最了解的开发人员.系统实际的使用人等. 二.怎么卖 如果在没有结合当前上下文的情况下,用通用语言来表述,我们很容易把代码写成下面的这个样子(其中DomainRegistry只是一个简单的工厂…