此页面有用吗?
您对此内容的反馈非常重要。 请告诉我们您的想法。
更多反馈?
1500 个剩余字符
导出 (0) 打印
全部展开
信息
您所需的主题如下所示。但此主题未包含在此库中。

Enumerable.LastOrDefault<TSource> 方法 (IEnumerable<TSource>)

2013/12/13

返回序列中的最后一个元素;如果序列中不包含任何元素,则返回默认值。

Namespace:  System.Linq
程序集:  System.Core(位于 System.Core.dll 中)

public static TSource LastOrDefault<TSource>(
	this IEnumerable<TSource> source
)

类型参数

TSource

source 中的元素的类型。

参数

source
类型: System.Collections.Generic.IEnumerable<TSource>
要返回其最后一个元素的 IEnumerable<T>

返回值

类型: TSource
如果源序列为空,则返回 default(TSource);否则返回 IEnumerable<T> 中的最后一个元素。

用法说明

在 Visual Basic 和 C# 中,您可以对类型为 IEnumerable<TSource> 的任何对象调用此方法作为实例方法。使用实例方法语法来调用此方法时,忽略第一个参数。

异常条件
ArgumentNullException

sourcenull

引用和可以为 null 的类型的默认值为 null

Enumerable.LastOrDefault 方法不提供任何方式来指定默认值。 如果您希望指定一个 default(TSource) 之外的默认值,请使用“示例”部分中介绍的 DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) 方法。

下面的代码示例演示如何对空数组使用 LastOrDefault<TSource>(IEnumerable<TSource>)


      string[] fruits = { };
      string last = fruits.LastOrDefault();
      outputBlock.Text +=
          String.IsNullOrEmpty(last) ? "<string is null or empty>" : last + "\n";

      /*
       This code produces the following output:

       <string is null or empty>
      */



如果集合不包含任何元素,则有时 default(TSource) 的值不是您希望使用的默认值。 如果集合为空,则与其检查结果是否包含不需要的默认值,然后根据需要更改它,不如使用 DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) 方法来指定您希望使用的默认值。 然后调用 Last<TSource>(IEnumerable<TSource>) 来获取最后一个元素。 下面的代码示例使用这两种方式,在月份的数字日期集合为空时获取默认值 1。 由于整数的默认值为 0,不对应月份中的任何日期,因此必须指定默认值为 1。 在查询执行完成之后,检查第一个结果变量是否为不需要的默认值。 通过使用 DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) 将默认值指定为 1 来获取第二个结果变量。


List<int> daysOfMonth = new List<int> { };

// Setting the default value to 1 after the query.
int lastDay1 = daysOfMonth.LastOrDefault();
if (lastDay1 == 0)
{
   lastDay1 = 1;
}
outputBlock.Text += String.Format("The value of the lastDay1 variable is {0}", lastDay1) + "\n";

// Setting the default value to 1 by using DefaultIfEmpty() in the query.
int lastDay2 = daysOfMonth.DefaultIfEmpty(1).Last();
outputBlock.Text += String.Format("The value of the lastDay2 variable is {0}", lastDay2) + "\n";

/*
 This code produces the following output:

 The value of the lastDay1 variable is 1
 The value of the lastDay2 variable is 1
*/


Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

显示:
© 2015 Microsoft