Enumerable.Aggregate 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.
Overload
Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>) |
Menerapkan fungsi akumulator secara berurutan. Nilai seed yang ditentukan digunakan sebagai nilai akumulator awal, dan fungsi yang ditentukan digunakan untuk memilih nilai hasil. |
Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>) |
Menerapkan fungsi akumulator secara berurutan. Nilai seed yang ditentukan digunakan sebagai nilai akumulator awal. |
Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>) |
Menerapkan fungsi akumulator secara berurutan. |
Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>)
- Sumber:
- Aggregate.cs
- Sumber:
- Aggregate.cs
- Sumber:
- Aggregate.cs
Menerapkan fungsi akumulator secara berurutan. Nilai seed yang ditentukan digunakan sebagai nilai akumulator awal, dan fungsi yang ditentukan digunakan untuk memilih nilai hasil.
public:
generic <typename TSource, typename TAccumulate, typename TResult>
[System::Runtime::CompilerServices::Extension]
static TResult Aggregate(System::Collections::Generic::IEnumerable<TSource> ^ source, TAccumulate seed, Func<TAccumulate, TSource, TAccumulate> ^ func, Func<TAccumulate, TResult> ^ resultSelector);
public static TResult Aggregate<TSource,TAccumulate,TResult> (this System.Collections.Generic.IEnumerable<TSource> source, TAccumulate seed, Func<TAccumulate,TSource,TAccumulate> func, Func<TAccumulate,TResult> resultSelector);
static member Aggregate : seq<'Source> * 'Accumulate * Func<'Accumulate, 'Source, 'Accumulate> * Func<'Accumulate, 'Result> -> 'Result
<Extension()>
Public Function Aggregate(Of TSource, TAccumulate, TResult) (source As IEnumerable(Of TSource), seed As TAccumulate, func As Func(Of TAccumulate, TSource, TAccumulate), resultSelector As Func(Of TAccumulate, TResult)) As TResult
Jenis parameter
- TSource
Jenis elemen source
.
- TAccumulate
Jenis nilai akumulator.
- TResult
Jenis nilai yang dihasilkan.
Parameter
- source
- IEnumerable<TSource>
Untuk IEnumerable<T> mengagregasi.
- seed
- TAccumulate
Nilai akumulator awal.
- func
- Func<TAccumulate,TSource,TAccumulate>
Fungsi akumulator yang akan dipanggil pada setiap elemen.
- resultSelector
- Func<TAccumulate,TResult>
Fungsi untuk mengubah nilai akumulator akhir menjadi nilai hasil.
Mengembalikan
Nilai akumulator akhir yang diubah.
Pengecualian
source
atau func
atau resultSelector
adalah null
.
Contoh
Contoh kode berikut menunjukkan cara menggunakan Aggregate untuk menerapkan fungsi akumulator dan pemilih hasil.
string[] fruits = { "apple", "mango", "orange", "passionfruit", "grape" };
// Determine whether any string in the array is longer than "banana".
string longestName =
fruits.Aggregate("banana",
(longest, next) =>
next.Length > longest.Length ? next : longest,
// Return the final result as an upper case string.
fruit => fruit.ToUpper());
Console.WriteLine(
"The fruit with the longest name is {0}.",
longestName);
// This code produces the following output:
//
// The fruit with the longest name is PASSIONFRUIT.
Sub AggregateEx3()
Dim fruits() As String =
{"apple", "mango", "orange", "passionfruit", "grape"}
' Determine whether any string in the array is longer than "banana".
Dim longestName As String =
fruits.Aggregate("banana",
Function(ByVal longest, ByVal fruit) _
IIf(fruit.Length > longest.Length, fruit, longest),
Function(ByVal fruit) fruit.ToUpper())
' Display the output.
Console.WriteLine($"The fruit with the longest name is {longestName}")
End Sub
' This code produces the following output:
'
' The fruit with the longest name is PASSIONFRUIT
Keterangan
Metode Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>) ini memudahkan untuk melakukan perhitungan atas urutan nilai. Metode ini bekerja dengan memanggil func
satu kali untuk setiap elemen di source
. Setiap kali func
dipanggil, Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>) meneruskan elemen dari urutan dan nilai agregat (sebagai argumen pertama ke func
). Nilai seed
parameter digunakan sebagai nilai agregat awal. Hasil func
menggantikan nilai agregat sebelumnya. Hasil akhir diteruskan func
ke resultSelector
untuk mendapatkan hasil akhir dari Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>).
Untuk menyederhanakan operasi agregasi umum, operator kueri standar juga menyertakan metode jumlah tujuan umum, Count, dan empat metode agregasi numerik, yaitu Min, , Max, Sumdan Average.
Berlaku untuk
Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>)
- Sumber:
- Aggregate.cs
- Sumber:
- Aggregate.cs
- Sumber:
- Aggregate.cs
Menerapkan fungsi akumulator secara berurutan. Nilai seed yang ditentukan digunakan sebagai nilai akumulator awal.
public:
generic <typename TSource, typename TAccumulate>
[System::Runtime::CompilerServices::Extension]
static TAccumulate Aggregate(System::Collections::Generic::IEnumerable<TSource> ^ source, TAccumulate seed, Func<TAccumulate, TSource, TAccumulate> ^ func);
public static TAccumulate Aggregate<TSource,TAccumulate> (this System.Collections.Generic.IEnumerable<TSource> source, TAccumulate seed, Func<TAccumulate,TSource,TAccumulate> func);
static member Aggregate : seq<'Source> * 'Accumulate * Func<'Accumulate, 'Source, 'Accumulate> -> 'Accumulate
<Extension()>
Public Function Aggregate(Of TSource, TAccumulate) (source As IEnumerable(Of TSource), seed As TAccumulate, func As Func(Of TAccumulate, TSource, TAccumulate)) As TAccumulate
Jenis parameter
- TSource
Jenis elemen source
.
- TAccumulate
Jenis nilai akumulator.
Parameter
- source
- IEnumerable<TSource>
Untuk IEnumerable<T> mengagregasi.
- seed
- TAccumulate
Nilai akumulator awal.
- func
- Func<TAccumulate,TSource,TAccumulate>
Fungsi akumulator yang akan dipanggil pada setiap elemen.
Mengembalikan
Nilai akumulator akhir.
Pengecualian
source
atau func
adalah null
.
Contoh
Contoh kode berikut menunjukkan cara menggunakan Aggregate untuk menerapkan fungsi akumulator dan menggunakan nilai awal.
int[] ints = { 4, 8, 8, 3, 9, 0, 7, 8, 2 };
// Count the even numbers in the array, using a seed value of 0.
int numEven = ints.Aggregate(0, (total, next) =>
next % 2 == 0 ? total + 1 : total);
Console.WriteLine("The number of even integers is: {0}", numEven);
// This code produces the following output:
//
// The number of even integers is: 6
Sub AggregateEx2()
' Create an array of Integers.
Dim ints() As Integer = {4, 8, 8, 3, 9, 0, 7, 8, 2}
' Count the even numbers in the array, using a seed value of 0.
Dim numEven As Integer =
ints.Aggregate(0,
Function(ByVal total, ByVal number) _
IIf(number Mod 2 = 0, total + 1, total))
' Display the output.
Console.WriteLine($"The number of even integers is {numEven}")
End Sub
' This code produces the following output:
'
'The number of even integers is 6
Keterangan
Metode Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>) ini memudahkan untuk melakukan perhitungan atas urutan nilai. Metode ini bekerja dengan memanggil func
satu kali untuk setiap elemen di source
. Setiap kali func
dipanggil, Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>) meneruskan elemen dari urutan dan nilai agregat (sebagai argumen pertama ke func
). Nilai seed
parameter digunakan sebagai nilai agregat awal. Hasil func
menggantikan nilai agregat sebelumnya. Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>) mengembalikan hasil akhir dari func
.
Untuk menyederhanakan operasi agregasi umum, operator kueri standar juga menyertakan metode jumlah tujuan umum, Count, dan empat metode agregasi numerik, yaitu Min, , Max, Sumdan Average.
Berlaku untuk
Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>)
- Sumber:
- Aggregate.cs
- Sumber:
- Aggregate.cs
- Sumber:
- Aggregate.cs
Menerapkan fungsi akumulator secara berurutan.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static TSource Aggregate(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, TSource, TSource> ^ func);
public static TSource Aggregate<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TSource,TSource> func);
static member Aggregate : seq<'Source> * Func<'Source, 'Source, 'Source> -> 'Source
<Extension()>
Public Function Aggregate(Of TSource) (source As IEnumerable(Of TSource), func As Func(Of TSource, TSource, TSource)) As TSource
Jenis parameter
- TSource
Jenis elemen source
.
Parameter
- source
- IEnumerable<TSource>
Untuk IEnumerable<T> mengagregasi.
- func
- Func<TSource,TSource,TSource>
Fungsi akumulator yang akan dipanggil pada setiap elemen.
Mengembalikan
Nilai akumulator akhir.
Pengecualian
source
atau func
adalah null
.
source
tidak berisi elemen.
Contoh
Contoh kode berikut menunjukkan cara membalikkan urutan kata dalam string dengan menggunakan Aggregate.
string sentence = "the quick brown fox jumps over the lazy dog";
// Split the string into individual words.
string[] words = sentence.Split(' ');
// Prepend each word to the beginning of the
// new sentence to reverse the word order.
string reversed = words.Aggregate((workingSentence, next) =>
next + " " + workingSentence);
Console.WriteLine(reversed);
// This code produces the following output:
//
// dog lazy the over jumps fox brown quick the
Sub AggregateEx1()
Dim sentence As String =
"the quick brown fox jumps over the lazy dog"
' Split the string into individual words.
Dim words() As String = sentence.Split(" "c)
' Prepend each word to the beginning of the new sentence to reverse the word order.
Dim reversed As String =
words.Aggregate(Function(ByVal current, ByVal word) word & " " & current)
' Display the output.
Console.WriteLine(reversed)
End Sub
' This code produces the following output:
'
' dog lazy the over jumps fox brown quick the
Keterangan
Metode Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>) ini memudahkan untuk melakukan perhitungan atas urutan nilai. Metode ini bekerja dengan memanggil func
satu kali untuk setiap elemen kecuali source
yang pertama. Setiap kali func
dipanggil, Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>) meneruskan elemen dari urutan dan nilai agregat (sebagai argumen pertama ke func
). Elemen source
pertama digunakan sebagai nilai agregat awal. Hasil func
menggantikan nilai agregat sebelumnya. Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>) mengembalikan hasil akhir dari func
.
Kelebihan beban Aggregate metode ini tidak cocok untuk semua kasus karena menggunakan elemen pertama sebagai source
nilai agregat awal. Anda harus memilih kelebihan beban lain jika nilai pengembalian hanya boleh menyertakan elemen source
yang memenuhi kondisi tertentu. Misalnya, kelebihan beban ini tidak dapat diandalkan jika Anda ingin menghitung jumlah angka genap di source
. Hasilnya akan salah jika elemen pertama ganjil alih-alih genap.
Untuk menyederhanakan operasi agregasi umum, operator kueri standar juga menyertakan metode jumlah tujuan umum, Count, dan empat metode agregasi numerik, yaitu Min, , Max, Sumdan Average.