在工作中我们经常会遇到有关LINQ 的一些问题。这时我们就用到lambda 表达式。

下面是我在工作遇到的。 First  and FirstOrDefault  这两方法。我今天把它记录一下。

需要注意的是我标注红色的部分,这是它们俩的区别。

First  and FirstOrDefault

 #region

Enumberable First() or FirstOrDefault()

         /// <summary>
/// 返回序列中的第一个元素;如果序列中不包含任何元素,则返回默认值。
/// 如果 source 为空,则返回 default(TSource);否则返回 source 中的第一个元素。
/// ArgumentNullException sourcevalue 为 null。
/// </summary>
public static void FunFirstOrDefault()
{
//FirstOrDefault()
string[] names = { "Haiming QI", "Har", "Adams, Terry", "Andersen, Henriette Thaulow", "Hedlund, Magnus", "Ito, Shu", null };
// string[] names = { }; // string 类型的默认值是空 int[] sexs = { , , , , , };
// int[] sexs = { }; // 因为int 类型的默认值是0. 所以当int[] 数组中没有任何元素时。default value is 0; 如果有元素,则返回第一个元素 //原方法: public static TSource FirstOrDefault<TSource>(this IEnumerable<TSource> source); // 扩展了IEnumerable<TSource> 接口
//string namevalue = names.FirstOrDefault(); // string IEnumerable<string>.FirstOrDefault<string>();
int sexvalue = sexs.FirstOrDefault(); // int IEnumerable<int>.FirstOrDefault<string>();
//string namevalue = names.DefaultIfEmpty("QI").First();
string namevalue = names.FirstOrDefault();
Console.WriteLine("FirstOrDefault(): default(TSource) if source is empty; otherwise, the first element in source:{0}", namevalue); } /// <summary>
/// 返回序列中的第一个元素。
/// 如果 source 中不包含任何元素,则 First<TSource>(IEnumerable<TSource>) 方法将引发异常
/// ArgumentNullException sourcevalue 为 null。
// InvalidOperationException 源序列为空。
/// </summary>
public static void FunFirst()
{
//First()
string[] names = { "Haiming QI", "Har", "Adams, Terry", "Andersen, Henriette Thaulow", "Hedlund, Magnus", "Ito, Shu", null };
// string[] names = { }; int[] sexs = { , , , , , };
//int[] sexs = { };
int fsex = sexs.First();
string fname = names.First(); // 如果序列中没有元素则会发生,InvalidOperationException 异常。 源序列为空。 Console.WriteLine("First(): Returns the first element of a sequence : {0}", fname); }
#endregion

以上是我在本地验证的code.

需要注意的是:

这都是扩展了IEnumerable 这个接口。

public static TSource FirstOrDefault<TSource>(this IEnumerable<TSource> source);

First 和 FirstOrDefault 最大的区别在于。 当集合(这个集合可以是:Arry,List,等等)中没有元素的时候。 First 会报异常 InvalidOperationException  源序列为空。
而 FirstOrDefault 则不会。

最新文章

  1. [信安Presentation]一种基于GPU并行计算的MD5密码解密方法
  2. BZOJ 3771: Triple
  3. HTML元素基础学习
  4. 瘟疫公司中国版(Android)手动破解内购
  5. Servlet部分细节介绍
  6. TKStudio 4.6IDE Warning: L6310W: Unable to find ARM libraries.
  7. 自定义Toast
  8. web前端中实现多标签页切换的效果
  9. GDAL库——读取图像并提取基本信息
  10. VB.net数据库编程(03):一个SQLserver连接查询的简单样例
  11. iScroll 4.2.5 中文API
  12. c++动态内存管理
  13. sql unique约束详解
  14. java第八周作业
  15. python-ConfigParser模块【读写配置文件】
  16. MySQL随手记
  17. MFC中CString.Format的详细用法
  18. JVM内存监视手段和内存溢出解决方案
  19. log Log4NET配置
  20. 【postman】利用谷歌浏览器插件生成代码

热门文章

  1. js编写时间选择框
  2. VPU硬编码
  3. 个人网站html5雪花飘落代码JS特效下载
  4. python os 模块常用操作
  5. dotnetnuke 调用第三方dll出错 System.Security.Permissions.SecurityPermission,型的权限已失败。
  6. VS命令行的使用
  7. gitignore相关
  8. ojdbc14:11.2.0.1.0出错
  9. CSS背景图怎么自适应全屏(手机或者电脑)
  10. anaconda下jieba和wordcloud安装