Avatar ·

Explicación del algoritmo de trabajo de Aggregate en LINQ (C#)

¡Hola a todos! Empecé a estudiar LINQ en C# y me encontré con el método Aggregate. Leí la documentación, pero aún no entiendo completamente cómo funciona. En la documentación se dice que Aggregate aplica una función acumuladora a una secuencia. Pero, ¿qué significa esto en la práctica? Por ejemplo, tengo este código: ```csharp int[] numbers = { 1, 2, 3, 4, 5 }; int sum = numbers.Aggregate((acc, x) => acc + x); Console.WriteLine(sum); // 15 ``` Entiendo que esto es la suma de los elementos del array. Pero, ¿cómo ocurre exactamente paso a paso? ¿Qué son `acc` y `x` en cada iteración? ¿Por qué el resultado es 15 y no otra cosa? También probé este ejemplo con strings: ```csharp string[] words = { "Hello", " ", "World", "!" }; string result = words.Aggregate((current, next) => current + next); Console.WriteLine(result); // "Hello World!" ``` Aquí tampoco entiendo completamente cómo se concatenan los elementos. Expliquen, por favor, el algoritmo de trabajo de Aggregate de manera sencilla, idealmente con un desglose paso a paso.