Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

Enumerable.Aggregate<TSource, TAccumulate, TResult>-Methode (IEnumerable<TSource>, TAccumulate, Func<TAccumulate, TSource, TAccumulate>, Func<TAccumulate, TResult>)

Wendet eine Akkumulatorfunktion auf eine Sequenz an. Der angegebene Startwert wird als erster Akkumulatorwert verwendet, und der Ergebniswert wird mit der angegebenen Funktion ausgewählt.

Namespace:  System.Linq
Assembly:  System.Core (in System.Core.dll)
public static TResult Aggregate<TSource, TAccumulate, TResult>(
	this IEnumerable<TSource> source,
	TAccumulate seed,
	Func<TAccumulate, TSource, TAccumulate> func,
	Func<TAccumulate, TResult> resultSelector
)

Typparameter

TSource

Der Typ der Elemente von source.

TAccumulate

Der Typ des Akkumulatorwerts.

TResult

Der Typ des Ergebniswerts.

Parameter

source
Typ: System.Collections.Generic.IEnumerable<TSource>
Ein IEnumerable<T>, das aggregiert werden soll.
seed
Typ: TAccumulate
Der erste Akkumulatorwert.
func
Typ: System.Func<TAccumulate, TSource, TAccumulate>
Eine Akkumulatorfunktion, die für jedes Element aufgerufen werden soll.
resultSelector
Typ: System.Func<TAccumulate, TResult>
Eine Funktion zum Transformieren des letzten Akkumulatorwerts in den Ergebniswert.

Rückgabewert

Typ: TResult
Der transformierte letzte Akkumulatorwert.

Hinweis zur Verwendung

In Visual Basic und C# können Sie diese Methode als Instanzenmethode für ein beliebiges Objekt vom Typ IEnumerable<TSource> aufrufen. Bei Verwendung der Syntax für Instanzenmethoden lassen Sie den ersten Parameter aus. Weitere Informationen finden Sie unter Erweiterungsmethoden (Visual Basic) und Erweiterungsmethoden (C#-Programmierhandbuch).
AusnahmeBedingung
ArgumentNullException

source, func oder resultSelector ist null.

Mit der Aggregate<TSource, TAccumulate, TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate, TSource, TAccumulate>, Func<TAccumulate, TResult>)-Methode lassen sich Berechnungen für eine Sequenz von Werten auf einfache Weise durchführen. Diese Methode ruft für jedes Element in source einmal func auf. Bei jedem Aufruf von func übergibt Aggregate<TSource, TAccumulate, TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate, TSource, TAccumulate>, Func<TAccumulate, TResult>) das Element aus der Sequenz und einen Aggregatwert (als erstes Argument für func). Der Wert des seed-Parameters wird als erster Aggregatwert verwendet. Das Ergebnis von func ersetzt den vorherigen Aggregatwert. Das Endergebnis von func wird an resultSelector übergeben, um das Endergebnis von Aggregate<TSource, TAccumulate, TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate, TSource, TAccumulate>, Func<TAccumulate, TResult>) zu erhalten.

Um häufige Aggregationsoperationen zu vereinfachen, enthalten die Standardabfrageoperatoren auch die allgemeine Zählmethode Count sowie vier numerische Aggregationsmethoden, und zwar Min, Max, Sum und Average.

Im folgenden Codebeispiel wird veranschaulicht, wie mit Aggregate eine Akkumulatorfunktion und eine Ergebnisauswahl angewendet werden.


            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. 



.NET Framework

Unterstützt in: 4.5, 4, 3.5

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)

Community-Beiträge

HINZUFÜGEN
© 2013 Microsoft. Alle Rechte vorbehalten.