zoukankan      html  css  js  c++  java
  • LINQ :First、FirstOrDefault使用;Max、Min使用

    关于Linq中First、FirstOrDefault;Last、LastOrDefault等方法的说明

    这里以First、FirstOrDefault进行说明,其他类似。
    1、First:取序列中满足条件的第一个元素,如果没有元素满足条件,则抛出异常
    2、FirstOrDefault:取序列中满足条件的第一个元素,如果没有元素满足条件,则返回默认值(对于可以为null的对象,默认值为null,对于不能为null的对象,如int,默认值为0)
    First、FirstOrDefault的区别在于:当没有元素满足条件时,一个抛出异常,一个返回默认值。
    因此,在使用时,一定要注意这个区别:
    1、当确信序列中一定有满足条件的元素时,使用First方法,取到元素后,无需判断是否为null
    2、当序列中可能找不到满足条件的元素时,使用FirstOrDefault方法,然后,一定要对返回值是否为null,进行不同的处理a

    关于Linq中Max、Min方法的使用

    在使用Max或Min方法时,必须要保证 调用方必须至少存在一个元素,若没有元素,则会抛出异常
    如(假设ints的类型为IEnumerable
    int max = ints.Max(); //当ints的个数为0时,则抛出异常
    为避免这个问题,一般情况下,可以如下编写:
    int max = 0; //先设置一个默认值,即如果没有元素时,应该取的值
    if (ints.Any())
    {
    max = ints.Max();
    }

    还有一种方式是使用DefaultIfEmpty方法:
    ints.DefaultIfEmpty().Max(); //DefaultIfEmpty方法,会在ints元素个数为0时,返回一个存在唯一一个默认值元素的IEnumerable,这样调用Max时,就不会抛异常了
    ints.DefaultIfEmpty(10).Max(); //也可以指定一个默认值,即当ints元素个数为0时,返回一个存在唯一一个元素的IEnumerable,而这唯一一个元素,就是你指定的值

  • 相关阅读:
    strncat_s
    资源编译器 (.rc) 文件
    C++ Namespace 详解
    Structure Definitions
    SetParent
    C++笔记(1)explicit构造函数
    .def
    tellg()和tellp()
    Data Groups
    Messages
  • 原文地址:https://www.cnblogs.com/A_ming/p/2451336.html
Copyright © 2011-2022 走看看