Enumerable.FirstOrDefault Metode

Definisi

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

Overload

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

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

FirstOrDefault<TSource>(IEnumerable<TSource>, TSource)

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

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

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

FirstOrDefault<TSource>(IEnumerable<TSource>)

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

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

Sumber:
First.cs
Sumber:
First.cs
Sumber:
First.cs

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

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

Jenis parameter

TSource

Jenis elemen source.

Parameter

source
IEnumerable<TSource>

Untuk IEnumerable<T> mengembalikan elemen dari.

predicate
Func<TSource,Boolean>

Fungsi untuk menguji setiap elemen untuk suatu kondisi.

defaultValue
TSource

Nilai default yang akan dikembalikan jika urutannya kosong.

Mengembalikan

TSource

defaultValue jika source kosong atau jika tidak ada elemen yang lulus tes yang ditentukan oleh predicate; jika tidak, elemen pertama dalam source yang lulus tes yang ditentukan oleh predicate.

Pengecualian

source atau predicate adalah null.

Berlaku untuk

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

FirstOrDefault<TSource>(IEnumerable<TSource>, TSource)

Sumber:
First.cs
Sumber:
First.cs
Sumber:
First.cs

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

C#
public static TSource FirstOrDefault<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 pertama.

defaultValue
TSource

Nilai default yang akan dikembalikan jika urutannya kosong.

Mengembalikan

TSource

defaultValue jika source kosong; jika tidak, elemen pertama di source.

Pengecualian

sourceadalah null.

Berlaku untuk

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

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

Sumber:
First.cs
Sumber:
First.cs
Sumber:
First.cs

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

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

Jenis parameter

TSource

Jenis elemen source.

Parameter

source
IEnumerable<TSource>

Untuk IEnumerable<T> mengembalikan elemen dari.

predicate
Func<TSource,Boolean>

Fungsi untuk menguji setiap elemen untuk suatu kondisi.

Mengembalikan

TSource

default(TSource) jika source kosong atau jika tidak ada elemen yang lulus tes yang ditentukan oleh predicate; jika tidak, elemen pertama dalam source yang lulus tes yang ditentukan oleh predicate.

Pengecualian

source atau predicate adalah null.

Contoh

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

C#
string[] names = { "Hartono, Tommy", "Adams, Terry",
                     "Andersen, Henriette Thaulow",
                     "Hedlund, Magnus", "Ito, Shu" };

string firstLongName = names.FirstOrDefault(name => name.Length > 20);

Console.WriteLine("The first long name is '{0}'.", firstLongName);

string firstVeryLongName = names.FirstOrDefault(name => name.Length > 30);

Console.WriteLine(
    "There is {0} name longer than 30 characters.",
    string.IsNullOrEmpty(firstVeryLongName) ? "not a" : "a");

/*
 This code produces the following output:

 The first long name is 'Andersen, Henriette Thaulow'.
 There is not a name longer than 30 characters.
*/

Keterangan

Nilai default untuk referensi dan jenis yang 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

FirstOrDefault<TSource>(IEnumerable<TSource>)

Sumber:
First.cs
Sumber:
First.cs
Sumber:
First.cs

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

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

Jenis parameter

TSource

Jenis elemen source.

Parameter

source
IEnumerable<TSource>

IEnumerable<T> untuk mengembalikan elemen pertama.

Mengembalikan

TSource

default(TSource) jika source kosong; jika tidak, elemen pertama di source.

Pengecualian

sourceadalah null.

Contoh

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

C#
int[] numbers = { };
int first = numbers.FirstOrDefault();
Console.WriteLine(first);

/*
 This code produces the following output:

 0
*/

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 DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) metode untuk menentukan nilai default yang ingin Anda gunakan jika koleksi kosong. Kemudian, panggil First<TSource>(IEnumerable<TSource>) untuk mendapatkan elemen pertama. Contoh kode berikut menggunakan kedua teknik untuk mendapatkan nilai default 1 jika kumpulan bulan numerik kosong. Karena nilai default untuk bilangan bulat adalah 0, yang tidak sesuai dengan bulan apa pun, 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> months = new List<int> { };

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

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

/*
 This code produces the following output:

 The value of the firstMonth1 variable is 1
 The value of the firstMonth2 variable is 1
*/

Keterangan

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

Metode FirstOrDefault ini tidak menyediakan cara untuk menentukan nilai default. Jika Anda ingin menentukan nilai default selain default(TSource), gunakan metode seperti yang DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) 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