C# Linq的First()方法 – 返回序列中的第一个元素

  • Post category:C#

C#中的Linq库提供了许多方便的查询方法,其中之一就是First()方法。这个方法可以用于从一个集合(如List、数组)中获取第一个元素,或者满足某个条件的第一个元素。下面将详细讲解First()方法的用法。

基本用法

First()方法可以接受一个参数,即匹配条件的Func<T, bool>委托。它返回集合中满足条件的第一个元素。如果集合为空或者没有满足条件的元素,则会抛出InvalidOperationException异常。

var numbers = new List<int> { 1, 2, 3, 4, 5 };
var firstEven = numbers.First(n => n % 2 == 0); // 返回2

上面的例子中,我们定义了一个列表numbers,然后使用First()方法获取了其中第一个偶数。由于2是第一个偶数,所以它被返回了。

扩展用法

除了基本用法之外,First()方法还有一些扩展用法。

获取默认值

当集合中不存在符合条件的元素时,First()方法会抛出异常。如果希望在这种情况下返回默认值,可以使用FirstOrDefault()方法。该方法返回集合中的第一个元素,如果集合为空,则返回默认值default(T)

var emptyList = new List<int>();
var firstOrDefault = emptyList.FirstOrDefault(); // 返回0,因为int的默认值是0

充当判断条件

First()方法可以充当判断条件,用于检查集合是否包含符合条件的元素。可以配合foreach循环使用。

bool hasEven = false;
foreach (var number in numbers)
{
    if (number % 2 == 0)
    {
        hasEven = true;
        break;
    }
}

上面的代码用传统的方式检查了集合中是否含有偶数。使用First()方法可以使代码更简洁。

bool hasEven = numbers.Any(n => n % 2 == 0);

上面的代码检查了集合中是否包含偶数。如果有任意一个元素满足条件,Any()方法就会返回true,否则返回false

总结

First()方法可以用于从集合中获取第一个元素,或者获取满足某个条件的第一个元素。如果集合为空或者没有满足条件的元素,则会抛出异常。扩展用法包括获取默认值和作为判断条件使用。