Heim > Backend-Entwicklung > C++ > Wie funktioniert die Aggregatfunktion von LINQ für Summation, Verkettung und Multiplikation?

Wie funktioniert die Aggregatfunktion von LINQ für Summation, Verkettung und Multiplikation?

DDD
Freigeben: 2024-12-26 02:11:09
Original
614 Leute haben es durchsucht

How Does LINQ's Aggregate Function Work for Summation, Concatenation, and Multiplication?

LINQ Aggregate: Eine umfassende Erklärung

Die LINQ Aggregate-Funktion führt eine Operation für eine Folge von Elementen aus und berücksichtigt dabei die Ergebnisse vorheriger Operationen. Im Wesentlichen verarbeitet es iterativ jedes Element in der Sequenz und akkumuliert das Ergebnis der Operation.

Beschreibung und Beispiele

Um Aggregate zu verstehen, beachten Sie die folgenden Definitionen und Beispiele:

  • Summation: Berechnet die Summe einer Reihe von Zahlen.
var nums = new[] { 1, 2, 3, 4 };
var sum = nums.Aggregate((a, b) => a + b);
Console.WriteLine(sum); // Output: 10 (1 + 2 + 3 + 4)
Nach dem Login kopieren
  • String-Verkettung: Erstellt eine durch Kommas getrennte Liste aus einem Array von Strings.
var chars = new[] { "a", "b", "c", "d" };
var csv = chars.Aggregate((a, b) => a + "," + b);
Console.WriteLine(csv); // Output: a,b,c,d
Nach dem Login kopieren
  • Multiplikation mit Startwert: Beginnt mit einem Startwert und multipliziert diesen durch jedes Element in der Sequenz.
var multipliers = new[] { 10, 20, 30, 40 };
var multiplied = multipliers.Aggregate(5, (a, b) => a * b);
Console.WriteLine(multiplied); // Output: 1200000 ((((5 * 10) * 20) * 30) * 40)
Nach dem Login kopieren

Detaillierte Beispiele

Beispiel 1: Summieren von Zahlen

var nums = new[] { 1, 2, 3, 4 };
var sum = nums.Aggregate((a, b) => a + b);
Nach dem Login kopieren

Erläuterung:

  • Die Aggregatfunktion beginnt mit der ersten zwei Elemente, 1 und 2, und führt die Addition (1 2 = 3) durch.
  • Das Ergebnis (3) wird zum Akkumulator (a) für den nächsten Schritt.
  • Der Akkumulator ist dann kombiniert mit dem nächsten Element, 3, was zu einem neuen Akkumulator (6) führt.
  • Dieser Vorgang wird fortgesetzt, bis alle Elemente verarbeitet wurden, wobei die Summe (6 4 =) akkumuliert wird 10).

Beispiel 2: Erstellen einer CSV aus Strings

var chars = new[] { "a", "b", "c", "d" };
var csv = chars.Aggregate((a, b) => a + "," + b);
Nach dem Login kopieren

Erklärung:

  • Wie im vorherigen Beispiel iteriert Aggregate über die Sequenz.
  • Es beginnt durch Kombinieren der ersten beiden Elemente („a“ und „b“) zu „a,b“.
  • Der Akkumulator („a,b“) wird dann mit dem nächsten Element („c“) verkettet werden zu „a,b,c“.
  • Das Endergebnis ist eine Zeichenfolge, bei der alle Elemente durch Kommas getrennt sind ("a,b,c,d").

Beispiel 3: Zahlen mit einem Startwert multiplizieren

var multipliers = new[] { 10, 20, 30, 40 };
var multiplied = multipliers.Aggregate(5, (a, b) => a * b);
Nach dem Login kopieren

Erklärung:

  • Aggregate akzeptiert eine Überladung, bei der ein „Seed“-Wert (5) vorliegt bereitgestellt.
  • Der Startwert ist der Anfangswert des Akkumulators.
  • Die Funktion multipliziert den Akkumulator mit dem ersten Element (5 * 10 = 50).
  • Der resultierende Akkumulator (50) wird dann mit dem nächsten Element multipliziert (50 * 20 = 1000).
  • Dieser Prozess geht weiter, Letztendlich werden alle Elemente und der Startwert multipliziert (1000 * 40 = 1200000).

Fazit

LINQ Aggregate bietet eine leistungsstarke Möglichkeit, verschiedene Operationen an Sequenzen durchzuführen, einschließlich Summierung, Verkettung usw multiplikative Akkumulation. Seine Vielseitigkeit und Benutzerfreundlichkeit machen es zu einem wertvollen Werkzeug für die Datenbearbeitung in C# und anderen .NET-Sprachen.

Das obige ist der detaillierte Inhalt vonWie funktioniert die Aggregatfunktion von LINQ für Summation, Verkettung und Multiplikation?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage