Enumerable.LastOrDefault Metode

Definisi

Mengembalikan elemen terakhir dari urutan, atau nilai default jika tidak ada elemen yang ditemukan.

Overload

LastOrDefault<TSource>(IEnumerable<TSource>)

Mengembalikan elemen terakhir dari urutan, atau nilai default jika urutan tidak berisi elemen.

LastOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Mengembalikan elemen terakhir dari urutan yang memenuhi kondisi atau nilai default jika tidak ada elemen tersebut yang ditemukan.

LastOrDefault<TSource>(IEnumerable<TSource>, TSource)

Mengembalikan elemen terakhir dari urutan, atau nilai default yang ditentukan jika urutan tidak berisi elemen.

LastOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>, TSource)

Mengembalikan elemen terakhir dari urutan yang memenuhi kondisi, atau nilai default yang ditentukan jika tidak ada elemen tersebut yang ditemukan.

LastOrDefault<TSource>(IEnumerable<TSource>)

Sumber:
Last.cs
Sumber:
Last.cs
Sumber:
Last.cs

Mengembalikan elemen terakhir dari urutan, atau nilai default jika urutan tidak berisi elemen.

C#
public static TSource LastOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source);
C#
public static TSource? LastOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source);

Jenis parameter

TSource

Jenis elemen source.

Parameter

source
IEnumerable<TSource>

IEnumerable<T> untuk mengembalikan elemen terakhir.

Mengembalikan

TSource

default(TSource) jika urutan sumber kosong; jika tidak, elemen terakhir dalam IEnumerable<T>.

Pengecualian

source null.

Contoh

Contoh kode berikut menunjukkan cara menggunakan LastOrDefault<TSource>(IEnumerable<TSource>) pada array kosong.

C#
string[] fruits = { };
string last = fruits.LastOrDefault();
Console.WriteLine(
    String.IsNullOrEmpty(last) ? "<string is null or empty>" : last);

/*
 This code produces the following output:

 <string is null or empty>
*/

Terkadang nilai default(TSource) bukan nilai default yang ingin Anda gunakan jika koleksi tidak berisi elemen. Alih-alih memeriksa hasil untuk nilai default yang tidak diinginkan lalu mengubahnya jika perlu, Anda dapat menggunakan metode DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) untuk menentukan nilai default yang ingin Anda gunakan jika koleksi kosong. Kemudian, panggil Last<TSource>(IEnumerable<TSource>) untuk mendapatkan elemen terakhir. Contoh kode berikut menggunakan kedua teknik untuk mendapatkan nilai default 1 jika kumpulan hari numerik dalam sebulan kosong. Karena nilai default untuk bilangan bulat adalah 0, yang tidak sesuai dengan hari mana pun dalam sebulan, nilai default harus ditentukan sebagai 1 sebagai gantinya. Variabel hasil pertama diperiksa untuk nilai default yang tidak diinginkan setelah kueri selesai dieksekusi. Variabel hasil kedua diperoleh dengan menggunakan DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) untuk menentukan nilai default 1.

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

// Setting the default value to 1 after the query.
int lastDay1 = daysOfMonth.LastOrDefault();
if (lastDay1 == 0)
{
    lastDay1 = 1;
}
Console.WriteLine("The value of the lastDay1 variable is {0}", lastDay1);

// Setting the default value to 1 by using DefaultIfEmpty() in the query.
int lastDay2 = daysOfMonth.DefaultIfEmpty(1).Last();
Console.WriteLine("The value of the lastDay2 variable is {0}", lastDay2);

/*
 This code produces the following output:

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

Keterangan

Nilai default untuk jenis referensi dan dapat diubah ke null adalah null.

Metode LastOrDefault tidak menyediakan cara untuk menentukan nilai default. Jika Anda ingin menentukan nilai default selain default(TSource), gunakan metode DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) seperti yang dijelaskan di bagian Contoh.

Berlaku untuk

.NET 9 dan versi lainnya
Produk Versi
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

LastOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Sumber:
Last.cs
Sumber:
Last.cs
Sumber:
Last.cs

Mengembalikan elemen terakhir dari urutan yang memenuhi kondisi atau nilai default jika tidak ada elemen tersebut yang ditemukan.

C#
public static TSource LastOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate);
C#
public static TSource? LastOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate);

Jenis parameter

TSource

Jenis elemen source.

Parameter

source
IEnumerable<TSource>

IEnumerable<T> untuk mengembalikan elemen.

predicate
Func<TSource,Boolean>

Fungsi untuk menguji setiap elemen untuk kondisi.

Mengembalikan

TSource

default(TSource) jika urutannya kosong atau jika tidak ada elemen yang lulus pengujian dalam fungsi predikat; jika tidak, elemen terakhir yang lulus pengujian dalam fungsi predikat.

Pengecualian

source atau predicatenull.

Contoh

Contoh kode berikut menunjukkan cara menggunakan LastOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) dengan meneruskan predikat. Dalam panggilan kedua ke metode , tidak ada elemen dalam urutan yang memenuhi kondisi.

C#
double[] numbers = { 49.6, 52.3, 51.0, 49.4, 50.2, 48.3 };

double last50 = numbers.LastOrDefault(n => Math.Round(n) == 50.0);

Console.WriteLine("The last number that rounds to 50 is {0}.", last50);

double last40 = numbers.LastOrDefault(n => Math.Round(n) == 40.0);

Console.WriteLine(
    "The last number that rounds to 40 is {0}.",
    last40 == 0.0 ? "<DOES NOT EXIST>" : last40.ToString());

/*
 This code produces the following output:

 The last number that rounds to 50 is 50.2.
 The last number that rounds to 40 is <DOES NOT EXIST>.
*/

Keterangan

Nilai default untuk jenis referensi dan dapat diubah ke null adalah null.

Berlaku untuk

.NET 9 dan versi lainnya
Produk Versi
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

LastOrDefault<TSource>(IEnumerable<TSource>, TSource)

Sumber:
Last.cs
Sumber:
Last.cs
Sumber:
Last.cs

Mengembalikan elemen terakhir dari urutan, atau nilai default yang ditentukan jika urutan tidak berisi elemen.

C#
public static TSource LastOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, TSource defaultValue);

Jenis parameter

TSource

Jenis elemen source.

Parameter

source
IEnumerable<TSource>

IEnumerable<T> untuk mengembalikan elemen terakhir.

defaultValue
TSource

Nilai default yang akan dikembalikan jika urutannya kosong.

Mengembalikan

TSource

defaultValue jika urutan sumber kosong; jika tidak, elemen terakhir dalam IEnumerable<T>.

Pengecualian

source null.

Berlaku untuk

.NET 9 dan versi lainnya
Produk Versi
.NET 6, 7, 8, 9

LastOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>, TSource)

Sumber:
Last.cs
Sumber:
Last.cs
Sumber:
Last.cs

Mengembalikan elemen terakhir dari urutan yang memenuhi kondisi, atau nilai default yang ditentukan jika tidak ada elemen tersebut yang ditemukan.

C#
public static TSource LastOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate, TSource defaultValue);

Jenis parameter

TSource

Jenis elemen source.

Parameter

source
IEnumerable<TSource>

IEnumerable<T> untuk mengembalikan elemen.

predicate
Func<TSource,Boolean>

Fungsi untuk menguji setiap elemen untuk kondisi.

defaultValue
TSource

Nilai default yang akan dikembalikan jika urutannya kosong.

Mengembalikan

TSource

defaultValue jika urutan kosong atau jika tidak ada elemen yang lulus pengujian dalam fungsi predikat; jika tidak, elemen terakhir yang lulus pengujian dalam fungsi predikat.

Pengecualian

source atau predicatenull.

Berlaku untuk

.NET 9 dan versi lainnya
Produk Versi
.NET 6, 7, 8, 9