Bagikan melalui


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.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static TSource FirstOrDefault(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, bool> ^ predicate, TSource defaultValue);
public static TSource FirstOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate, TSource defaultValue);
static member FirstOrDefault : seq<'Source> * Func<'Source, bool> * 'Source -> 'Source
<Extension()>
Public Function FirstOrDefault(Of TSource) (source As IEnumerable(Of TSource), predicate As Func(Of TSource, Boolean), defaultValue As TSource) As TSource

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

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.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static TSource FirstOrDefault(System::Collections::Generic::IEnumerable<TSource> ^ source, TSource defaultValue);
public static TSource FirstOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, TSource defaultValue);
static member FirstOrDefault : seq<'Source> * 'Source -> 'Source
<Extension()>
Public Function FirstOrDefault(Of TSource) (source As IEnumerable(Of TSource), defaultValue As TSource) As TSource

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

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.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static TSource FirstOrDefault(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, bool> ^ predicate);
public static TSource FirstOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate);
public static TSource? FirstOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate);
static member FirstOrDefault : seq<'Source> * Func<'Source, bool> -> 'Source
<Extension()>
Public Function FirstOrDefault(Of TSource) (source As IEnumerable(Of TSource), predicate As Func(Of TSource, Boolean)) As TSource

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.

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.
*/
' Create an array of strings.
Dim names() As String =
{"Hartono, Tommy", "Adams, Terry", "Andersen, Henriette Thaulow", "Hedlund, Magnus", "Ito, Shu"}

' Select the first string in the array whose length is greater than 20.
Dim firstLongName As String =
names.FirstOrDefault(Function(name) name.Length > 20)

' Display the output.
Console.WriteLine($"The first long name is {firstLongName}")

' Select the first string in the array whose length is greater than 30,
' or a default value if there are no such strings in the array.
Dim firstVeryLongName As String =
names.FirstOrDefault(Function(name) name.Length > 30)

Dim text As String = IIf(String.IsNullOrEmpty(firstVeryLongName), "not a", "a")

Console.WriteLine($"There is {text} name longer than 30 characters.")

' 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

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.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static TSource FirstOrDefault(System::Collections::Generic::IEnumerable<TSource> ^ source);
public static TSource FirstOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source);
public static TSource? FirstOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source);
static member FirstOrDefault : seq<'Source> -> 'Source
<Extension()>
Public Function FirstOrDefault(Of TSource) (source As IEnumerable(Of TSource)) As TSource

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.

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

/*
 This code produces the following output:

 0
*/
' Create an empty array.
Dim numbers() As Integer = {}

' Select the first element in the array, or a default value
' if there are not elements in the array.
Dim first As Integer = numbers.FirstOrDefault()

' Display the output.
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.

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
*/
Dim months As New List(Of Integer)(New Integer() {})

' Setting the default value to 1 after the query.
Dim firstMonth1 As Integer = months.FirstOrDefault()
If firstMonth1 = 0 Then
    firstMonth1 = 1
End If
Console.WriteLine($"The value of the firstMonth1 variable is {firstMonth1}")

' Setting the default value to 1 by using DefaultIfEmpty() in the query.
Dim firstMonth2 As Integer = months.DefaultIfEmpty(1).First()
Console.WriteLine($"The value of the firstMonth2 variable is {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