프로그래밍/C#

[C#] Linq - Enumerable.Aggregate

Victory_HA 2021. 10. 23. 19:24

Enumerable.Aggregate

  • 우선, Aggregate는 합계, 총액 이란 뜻으로 직역합니다.
  • Aggregate는 시퀀스에 걸쳐 누적기 함수를 적용합니다.
  • seed(매개변수1)은 초기 누적기 값으로 사용됩니다.
Enumerable.Aggregate(seed, func, resultSelector);
-   매개변수1 : 누적 시 초기 값으로 사용됩니다.
-   매개변수2 : 매개변수1를 포함하여 함수 실행 후 반환합니다.
-   매개변수3 : 매개변수2의 반환 값에 대해 함수 실행 후 반환합니다.

사용 예제1

string[] arr_str = new string[] { "a","b","c"};
int[] arr_int = new int[] { 2, 3, 4 };

var res_int = arr_str.Aggregate("b",(a, b) => a + "," + b);
var res_str = arr_int.Aggregate((a, b) => a + b);
var res_str2 = arr_int.Aggregate(10,(a, b) => a * b);

Console.WriteLine($"res_int : {res_int}");      // a,b,c
Console.WriteLine($"res_str : {res_str}");      // 2+3+4 = 9
Console.WriteLine($"res_str2 : {res_str2}");    // 10 *(2*3*4) = 240

정리

  • Enumerable.Aggregat 메서드는 작은 단위가 누적되어 합쳐져 하나를 이룬다는 느낌으로 사용됩니다.
  • 따라서 Enumerable.Sum 메서드와는 다르게 사용됩니다.