본문 바로가기
Programming/C# & .NET

[C#] Linq - Aggregate 메서드

by Kor-IT 2023. 6. 27.
반응형

Aggregate

Aggregate


namespace : Systme.Linq
Assembly : System.Linq.dll

Aggregate는 정확히는 Enumerable.Aggregate 이다. 반복적으로 일어나는 행위에 대해서 처리되는 메서드 이다.

 

 

Overloads

Method Description
Aggregate<TSource>(Ienumerable<TSource>, Func<TSource, TSource, TSource>) 시퀀스에 누적 함수를 적용한다.
Aggregate<TSource, TAccumulate>(IEnuerable<TSource>, TAccumulate, Func<TAccmulate, TSource, TAcculate>) 시퀀스에 누적시 삼수를 적용한다. 
지정된 시드 값은 초기 누적기 값으롤 사용된다.
Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>) 시퀀스에 누적기 함수를 적용한다.
지정된 시드 값은 초기 누적기 값으로 사용된다.
지정된 함수는 결과 값을 선택하는데 사용된다.

 

 

Apply Version

Product Version
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0
Xamarin.iOS 10.8
Xsamarin.Mac 3.0

 

 

Example

string[] fruits = { "apple", "mango", "orange", "passionfruit", "grape" };

string longestName =
    fruits.Aggregate("banana",
                    (longest, next) =>
                    {
                        return next.Length > longest.Length ? next : longest;
                    },
                    fruit => fruit.ToUpper());

Console.WriteLine("The fruit with the longest name is {0}.",longestName);
반응형
[Result]
The fruit with the longest name is PASSIONFRUIT.

 

과일 종류들중 가장 길이가 긴 과일을 뽑는 코드이다. Aggregate를 이용해서 최초 'banana' 와 'apple' 을 비교하여 길이를 비교하여 길이가 긴 단어가 반환된다.

'apple' 부터 'grape' 까지 각각 비교되며 longest에 길이가 긴 단어가 설정되며 비교가 다 된 이후 fruit,ToUpper() 를 통해 대문자로 변환된다.

 

 

 

반응형

댓글