Enumerable.SingleOrDefault Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mengembalikan satu elemen tertentu dari urutan, atau nilai default jika elemen tersebut tidak ditemukan.
Overload
SingleOrDefault<TSource>(IEnumerable<TSource>) |
Mengembalikan satu-satunya elemen urutan, atau nilai default jika urutan kosong; metode ini memberikan pengecualian jika ada lebih dari satu elemen dalam urutan. |
SingleOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Mengembalikan satu-satunya elemen urutan yang memenuhi kondisi tertentu atau nilai default jika tidak ada elemen tersebut; metode ini memberikan pengecualian jika lebih dari satu elemen memenuhi kondisi. |
SingleOrDefault<TSource>(IEnumerable<TSource>, TSource) |
Mengembalikan satu-satunya elemen dari urutan, atau nilai default yang ditentukan jika urutannya kosong; metode ini memberikan pengecualian jika ada lebih dari satu elemen dalam urutan. |
SingleOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>, TSource) |
Mengembalikan satu-satunya elemen urutan yang memenuhi kondisi tertentu, atau nilai default yang ditentukan jika tidak ada elemen tersebut; metode ini memberikan pengecualian jika lebih dari satu elemen memenuhi kondisi. |
SingleOrDefault<TSource>(IEnumerable<TSource>)
- Sumber:
- Single.cs
- Sumber:
- Single.cs
- Sumber:
- Single.cs
Mengembalikan satu-satunya elemen urutan, atau nilai default jika urutan kosong; metode ini memberikan pengecualian jika ada lebih dari satu elemen dalam urutan.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static TSource SingleOrDefault(System::Collections::Generic::IEnumerable<TSource> ^ source);
public static TSource SingleOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source);
public static TSource? SingleOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source);
static member SingleOrDefault : seq<'Source> -> 'Source
<Extension()>
Public Function SingleOrDefault(Of TSource) (source As IEnumerable(Of TSource)) As TSource
Jenis parameter
- TSource
Jenis elemen source
.
Parameter
- source
- IEnumerable<TSource>
Untuk IEnumerable<T> mengembalikan elemen tunggal.
Mengembalikan
Elemen tunggal dari urutan input, atau default
(TSource
) jika urutan tidak berisi elemen.
Pengecualian
source
adalah null
.
Urutan input berisi lebih dari satu elemen.
Contoh
Contoh kode berikut menunjukkan cara menggunakan SingleOrDefault<TSource>(IEnumerable<TSource>) untuk memilih satu-satunya elemen array.
string[] fruits1 = { "orange" };
string fruit1 = fruits1.SingleOrDefault();
Console.WriteLine(fruit1);
/*
This code produces the following output:
orange
*/
' Create an array that contains one item.
Dim fruits1() As String = {"orange"}
' Get the single item in the array or else a default value.
Dim result As String = fruits1.SingleOrDefault()
' Display the result.
Console.WriteLine($"First array: {result}")
Contoh kode berikut menunjukkan bahwa SingleOrDefault<TSource>(IEnumerable<TSource>) mengembalikan nilai default saat urutan kosong.
string[] fruits2 = { };
string fruit2 = fruits2.SingleOrDefault();
Console.WriteLine(
String.IsNullOrEmpty(fruit2) ? "No such string!" : fruit2);
/*
This code produces the following output:
No such string!
*/
' Create an empty array.
Dim fruits2() As String = {}
result = String.Empty
' Get the single item in the array or else a default value.
result = fruits2.SingleOrDefault()
' Display the result.
Dim output As String =
IIf(String.IsNullOrEmpty(result), "No single item found", result)
Console.WriteLine($"Second array: {output}")
' This code produces the following output:
'
' First array: orange
' Second array: No single item found
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 Single<TSource>(IEnumerable<TSource>) untuk mendapatkan elemen . Contoh kode berikut menggunakan kedua teknik untuk mendapatkan nilai default 1 jika kumpulan nomor halaman kosong. Karena nilai default untuk bilangan bulat adalah 0, yang biasanya bukan nomor halaman yang valid, 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.
int[] pageNumbers = { };
// Setting the default value to 1 after the query.
int pageNumber1 = pageNumbers.SingleOrDefault();
if (pageNumber1 == 0)
{
pageNumber1 = 1;
}
Console.WriteLine("The value of the pageNumber1 variable is {0}", pageNumber1);
// Setting the default value to 1 by using DefaultIfEmpty() in the query.
int pageNumber2 = pageNumbers.DefaultIfEmpty(1).Single();
Console.WriteLine("The value of the pageNumber2 variable is {0}", pageNumber2);
/*
This code produces the following output:
The value of the pageNumber1 variable is 1
The value of the pageNumber2 variable is 1
*/
Dim pageNumbers() As Integer = {}
' Setting the default value to 1 after the query.
Dim pageNumber1 As Integer = pageNumbers.SingleOrDefault()
If pageNumber1 = 0 Then
pageNumber1 = 1
End If
Console.WriteLine($"The value of the pageNumber1 variable is {pageNumber1}")
' Setting the default value to 1 by using DefaultIfEmpty() in the query.
Dim pageNumber2 As Integer = pageNumbers.DefaultIfEmpty(1).Single()
Console.WriteLine($"The value of the pageNumber2 variable is {pageNumber2}")
' This code produces the following output:
' The value of the pageNumber1 variable is 1
' The value of the pageNumber2 variable is 1
Keterangan
Nilai default untuk referensi dan jenis yang dapat diubah ke null adalah null
.
Metode SingleOrDefault 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
SingleOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)
- Sumber:
- Single.cs
- Sumber:
- Single.cs
- Sumber:
- Single.cs
Mengembalikan satu-satunya elemen urutan yang memenuhi kondisi tertentu atau nilai default jika tidak ada elemen tersebut; metode ini memberikan pengecualian jika lebih dari satu elemen memenuhi kondisi.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static TSource SingleOrDefault(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, bool> ^ predicate);
public static TSource SingleOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate);
public static TSource? SingleOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate);
static member SingleOrDefault : seq<'Source> * Func<'Source, bool> -> 'Source
<Extension()>
Public Function SingleOrDefault(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 satu elemen dari.
Mengembalikan
Elemen tunggal dari urutan input yang memenuhi kondisi, atau default
(TSource
) jika tidak ada elemen tersebut yang ditemukan.
Pengecualian
source
atau predicate
adalah null
.
Lebih dari satu elemen memenuhi kondisi di predicate
.
Contoh
Contoh kode berikut menunjukkan cara menggunakan SingleOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) untuk memilih satu-satunya elemen array yang memenuhi kondisi.
string[] fruits = { "apple", "banana", "mango",
"orange", "passionfruit", "grape" };
string fruit1 = fruits.SingleOrDefault(fruit => fruit.Length > 10);
Console.WriteLine(fruit1);
/*
This code produces the following output:
passionfruit
*/
' Create an array of strings.
Dim fruits() As String =
{"apple", "banana", "mango", "orange", "passionfruit", "grape"}
' Get the single item in the array whose length is > 10.
Dim fruit1 As String =
fruits.SingleOrDefault(Function(fruit) fruit.Length > 10)
' Display the result.
Console.WriteLine($"First array: {fruit1}")
Contoh kode berikut menunjukkan bahwa SingleOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) mengembalikan nilai default saat urutan tidak berisi elemen yang memenuhi kondisi.
string fruit2 =
fruits.SingleOrDefault(fruit => fruit.Length > 15);
Console.WriteLine(
String.IsNullOrEmpty(fruit2) ? "No such string!" : fruit2);
/*
This code produces the following output:
No such string!
*/
' Get the single item in the array whose length is > 15.
Dim fruit2 As String =
fruits.SingleOrDefault(Function(fruit) fruit.Length > 15)
' Display the result.
Dim output As String =
IIf(String.IsNullOrEmpty(fruit2), "No single item found", fruit2)
Console.WriteLine($"Second array: {output}")
' This code produces the following output:
'
' First array: passionfruit
' Second array: No single item found
Keterangan
Nilai default untuk referensi dan jenis yang dapat diubah ke null adalah null
.
Berlaku untuk
SingleOrDefault<TSource>(IEnumerable<TSource>, TSource)
- Sumber:
- Single.cs
- Sumber:
- Single.cs
- Sumber:
- Single.cs
Mengembalikan satu-satunya elemen dari urutan, atau nilai default yang ditentukan jika urutannya kosong; metode ini memberikan pengecualian jika ada lebih dari satu elemen dalam urutan.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static TSource SingleOrDefault(System::Collections::Generic::IEnumerable<TSource> ^ source, TSource defaultValue);
public static TSource SingleOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, TSource defaultValue);
static member SingleOrDefault : seq<'Source> * 'Source -> 'Source
<Extension()>
Public Function SingleOrDefault(Of TSource) (source As IEnumerable(Of TSource), defaultValue As TSource) As TSource
Jenis parameter
- TSource
Jenis elemen source
.
Parameter
- source
- IEnumerable<TSource>
Untuk IEnumerable<T> mengembalikan elemen tunggal.
- defaultValue
- TSource
Nilai default yang akan dikembalikan jika urutannya kosong.
Mengembalikan
Elemen tunggal dari urutan input, atau defaultValue
jika urutan tidak berisi elemen.
Pengecualian
source
adalah null
.
Urutan input berisi lebih dari satu elemen.
Berlaku untuk
SingleOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>, TSource)
- Sumber:
- Single.cs
- Sumber:
- Single.cs
- Sumber:
- Single.cs
Mengembalikan satu-satunya elemen urutan yang memenuhi kondisi tertentu, atau nilai default yang ditentukan jika tidak ada elemen tersebut; metode ini memberikan pengecualian jika lebih dari satu elemen memenuhi kondisi.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static TSource SingleOrDefault(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, bool> ^ predicate, TSource defaultValue);
public static TSource SingleOrDefault<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate, TSource defaultValue);
static member SingleOrDefault : seq<'Source> * Func<'Source, bool> * 'Source -> 'Source
<Extension()>
Public Function SingleOrDefault(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 satu elemen dari.
- defaultValue
- TSource
Nilai default yang akan dikembalikan jika urutannya kosong.
Mengembalikan
Elemen tunggal dari urutan input yang memenuhi kondisi, atau defaultValue
jika tidak ada elemen tersebut yang ditemukan.
Pengecualian
source
atau predicate
adalah null
.
Lebih dari satu elemen memenuhi kondisi di predicate
.