エクスポート (0) 印刷
すべて展開
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Enumerable.LastOrDefault<TSource> メソッド (IEnumerable<TSource>)

2013/12/12

シーケンスの最後の要素を返します。シーケンスに要素が含まれていない場合は既定値を返します。

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 メソッドは、既定値を指定する方法を提供しません。既定 (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>
      */



既定 (TSource) の値は、コレクションに要素が含まれない場合、使用したい既定値ではない場合があります。望ましくない既定値による結果を確認し、必要に応じてそれを変更する代わりに、DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) メソッドを使用して、コレクションが空の場合に使用する既定値を指定できます。次に、Last<TSource>(IEnumerable<TSource>) を呼び出して、最後の要素を取得します。次に、両方の方法を使用して、月の何日目かを表す数値のコレクションが空の場合に 1 という既定値を取得するコード例を示します。整数の既定値は 0 ですが、これは月のどの日付にも対応しないので、既定値として 1 を指定する必要があります。クエリの実行が終了した後で、望ましくない既定値に対する最初の結果変数を確認します。2 番目の結果変数は、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

表示:
© 2014 Microsoft