Enumerable.Aggregate Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Túlterhelések
| Name | Description |
|---|---|
| Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>) |
Egy akkumulátorfüggvényt alkalmaz egy sorozatra. A rendszer a megadott magértéket használja a kezdeti gyűjtőértékként, a megadott függvény pedig az eredményérték kiválasztásához. |
| Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>) |
Egy akkumulátorfüggvényt alkalmaz egy sorozatra. A rendszer a megadott magértéket használja a kezdeti gyűjtőértékként. |
| Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>) |
Egy akkumulátorfüggvényt alkalmaz egy sorozatra. |
Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>)
- Forrás:
- Aggregate.cs
- Forrás:
- Aggregate.cs
- Forrás:
- Aggregate.cs
- Forrás:
- Aggregate.cs
- Forrás:
- Aggregate.cs
Egy akkumulátorfüggvényt alkalmaz egy sorozatra. A rendszer a megadott magértéket használja a kezdeti gyűjtőértékként, a megadott függvény pedig az eredményérték kiválasztásához.
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
Típusparaméterek
- TSource
A . elemeinek sourcetípusa.
- TAccumulate
Az akkumulátor értékének típusa.
- TResult
Az eredményként kapott érték típusa.
Paraméterek
- source
- IEnumerable<TSource>
Egy IEnumerable<T> összesítendő.
- seed
- TAccumulate
A kezdeti akkumulátorérték.
- func
- Func<TAccumulate,TSource,TAccumulate>
Az egyes elemeken meghívandó akkumulátorfüggvény.
- resultSelector
- Func<TAccumulate,TResult>
Egy függvény, amely átalakítja a végső akkumulátor értékét az eredményértékké.
Válaszok
Az átalakított végső akkumulátor értéke.
Kivételek
source vagy funcresultSelector az nullis.
Példák
Az alábbi példakód bemutatja, hogyan használható Aggregate egy akkumulátorfüggvény és egy eredményválasztó alkalmazása.
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
Megjegyzések
A Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>) metódus egyszerűvé teszi a számítást egy értéksorozaton keresztül. Ez a metódus úgy működik, hogy a minden eleméhez egyszeri meghívást funcvégezsource. Minden alkalommal, amikor func meghívják, átadja mind az elemet a sorozatból, Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>) mind az összesített értéket (első argumentumként).func A paraméter értéke seed lesz a kezdeti összesített érték. Az eredmény felülírja func az előző összesített értéket. Az eredmény végső eredménye funcresultSelector a következő lesz Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>): .
A gyakori összesítési műveletek egyszerűsítése érdekében a szabványos lekérdezési operátorok közé tartozik egy általános célú számmetódus, Countvalamint négy numerikus összesítési módszer, nevezetesen Mina , Maxés SumAverage.
A következőre érvényes:
Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>)
- Forrás:
- Aggregate.cs
- Forrás:
- Aggregate.cs
- Forrás:
- Aggregate.cs
- Forrás:
- Aggregate.cs
- Forrás:
- Aggregate.cs
Egy akkumulátorfüggvényt alkalmaz egy sorozatra. A rendszer a megadott magértéket használja a kezdeti gyűjtőértékként.
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
Típusparaméterek
- TSource
A . elemeinek sourcetípusa.
- TAccumulate
Az akkumulátor értékének típusa.
Paraméterek
- source
- IEnumerable<TSource>
Egy IEnumerable<T> összesítendő.
- seed
- TAccumulate
A kezdeti akkumulátorérték.
- func
- Func<TAccumulate,TSource,TAccumulate>
Az egyes elemeken meghívandó akkumulátorfüggvény.
Válaszok
A végső akkumulátor értéke.
Kivételek
source vagy func az null.
Példák
Az alábbi példakód bemutatja, hogyan használható Aggregate az akkumulátorfüggvények alkalmazása és a magérték használata.
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
Megjegyzések
A Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>) metódus egyszerűvé teszi a számítást egy értéksorozaton keresztül. Ez a metódus úgy működik, hogy a minden eleméhez egyszeri meghívást funcvégezsource. Minden alkalommal, amikor func meghívják, átadja mind az elemet a sorozatból, Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>) mind az összesített értéket (első argumentumként).func A paraméter értéke seed lesz a kezdeti összesített érték. Az eredmény felülírja func az előző összesített értéket.
Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>) A végeredményét funcadja vissza.
A gyakori összesítési műveletek egyszerűsítése érdekében a szabványos lekérdezési operátorok közé tartozik egy általános célú számmetódus, Countvalamint négy numerikus összesítési módszer, nevezetesen Mina , Maxés SumAverage.
A következőre érvényes:
Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>)
- Forrás:
- Aggregate.cs
- Forrás:
- Aggregate.cs
- Forrás:
- Aggregate.cs
- Forrás:
- Aggregate.cs
- Forrás:
- Aggregate.cs
Egy akkumulátorfüggvényt alkalmaz egy sorozatra.
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
Típusparaméterek
- TSource
A . elemeinek sourcetípusa.
Paraméterek
- source
- IEnumerable<TSource>
Egy IEnumerable<T> összesítendő.
- func
- Func<TSource,TSource,TSource>
Az egyes elemeken meghívandó akkumulátorfüggvény.
Válaszok
A végső akkumulátor értéke.
Kivételek
source vagy func az null.
source nem tartalmaz elemeket.
Példák
Az alábbi példakód bemutatja, hogyan fordíthatja vissza a szavak sorrendjét egy sztringben a használatával 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
Megjegyzések
A Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>) metódus egyszerűvé teszi a számítást egy értéksorozaton keresztül. Ez a módszer úgy működik, hogy az első kivételével minden egyes elemhez func egyszer hív megsource. Minden alkalommal, amikor func meghívják, átadja mind az elemet a sorozatból, Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>) mind az összesített értéket (első argumentumként).func A rendszer a kezdeti összesített értékként használja az első elemet source . Az eredmény felülírja func az előző összesített értéket.
Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>) A végeredményét funcadja vissza.
A metódus túlterhelése Aggregate nem minden esetben megfelelő, mert az első elemét source használja a kezdeti összesített értékként. Másik túlterhelést kell választania, ha a visszatérési értéknek csak az adott feltételnek megfelelő elemeket kell tartalmaznia source . Ez a túlterhelés például nem megbízható, ha ki szeretné számítani a páros számok sourceösszegét. Az eredmény helytelen lesz, ha az első elem páros helyett páratlan.
A gyakori összesítési műveletek egyszerűsítése érdekében a szabványos lekérdezési operátorok közé tartozik egy általános célú számmetódus, Countvalamint négy numerikus összesítési módszer, nevezetesen Mina , Maxés SumAverage.