Aggregate

  • LINQ 에서 제공 되는 메서드
  • 시퀀스에 대해 누적하는 연산을 수행하고 최종 결과를 반환
  • 곱셈, 합계, 문자열 등 다양한 누적 연산에 사용

문자열 내림차순으로 배치하기

문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, (s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.)

“Zbcdefg” => “gfedcbZ”

using System;
using System.Linq;
public class Solution 
{
	public string solution(string s)  
	{  
		IOrderedEnumerable<char> oderBy = s.OrderByDescending(c => c);  
		return oderBy.Aggregate("", (current, c) => current + c);  
	}
}

Aggregate의 수행 과정

  1. 누적기 (‘current’)를 빈 문자열 ""으로 시작

  2. 시퀀스(orderBy)의 각 요소(c)를 차례로 순회하면서, 람다 표현식을 사용해
    현재 누적기 current에 현재 요소 c를 추가합니다.

  3. 모든 요소를 순회하고 나면 최종 문자열을 반환합니다.