상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - C#의 LINQ에서 Aggregate의 사용법은?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
C 의 LINQ (Language Integrated Query)에서 `Aggregate` 메서드는 컬렉션의 요소를 하나의 값으로 집계하는 데 사용됩니다. 이 메서드는 주로 리스트, 배열 등과 같은 컬렉션의 요소를 순회하면서 누적 계산을 수행할 때 유용합니다. `Aggregate`는 `System.Linq` 네임스페이스에 정의되어 있으며, LINQ 쿼리의 일환으로 사용할 수 있습니다. 기본 사용법 `Aggregate` 메서드는 다음과 같은 기본 구문을 가지고 있습니다: ```csharp public static TAccumulate Aggregate<TSource, TAccumulate>( this IEnumerable<TSource> source, TAccumulate seed, Func<TAccumulate, TSource, TAccumulate> func); ``` - source : 집계할 요소가 포함된 컬렉션입니다. - seed : 집계의 <a href='https://sangseek.com/sangseeks/초기값/ko'>초기값</a>입니다. - func : 누적값과 현재 요소를 입력으로 받아 새로운 누적값을 반환하는 함수입니다. 예제 1. 정수 배열의 합계 구하기 ```csharp using System; using System.Linq; class Program { static void Main() { int[] numbers = { 1, 2, 3, 4, 5 }; int sum = numbers.Aggregate(0, (acc, x) => acc + x); Console.WriteLine($"Sum: {sum}"); // 출력: Sum: 15 } } ``` 위의 예제에서 `Aggregate` 메서드는 `numbers` 배열의 모든 요소를 더하여 총합을 계산합니다. 초기값 `0`에서 시작하여 각 요소를 누적하여 더합니다. 2. 문자열 연결하기 ```csharp using System; using System.Linq; class Program { static void Main() { string[] words = { "Hello", "World", "from", "LINQ" }; string sentence = words.Aggregate((acc, x) => acc + " " + x); Console.WriteLine(sentence); // 출력: Hello World from LINQ } } ``` 이 예제에서는 문자열 배열의 요소를 <a href='https://sangseek.com/sangseeks/공백/ko'>공백</a>으로 구분하여 하나의 문장으로 연결합니다. 초기값을 제공하지 않으면 첫 번째 요소가 자동으로 초기값으로 사용됩니다. 3. 최대값 찾기 ```csharp using System; using System.Linq; class Program { static void Main() { int[] numbers = { 1, 5, 3, 9, 2 }; int max = numbers.Aggregate((acc, x) => acc > x ? acc : x); Console.WriteLine($"Max: {max}"); // 출력: Max: 9 } } ``` 이 예제에서는 `Aggregate`를 사용하여 배열의 최대값을 찾습니다. 각 요소를 비교하여 더 큰 값을 누적합니다. 추가 매개변수 `Aggregate` 메서드는 추가적인 매개변수를 지원합니다. 예를 들어, 초기값을 제공하고, 집계 함수 외에도 결과를 변환하는 함수를 추가할 수 있습니다. ```csharp public static TAccumulate Aggregate<TSource, TAccumulate>( this IEnumerable<TSource> source, TAccumulate seed, Func<TAccumulate, TSource, TAccumulate> func, Func<TAccumulate, TResult> resultSelector); ``` - resultSelector : 최종 결과를 변환하는 함수입니다. 예제: 결과 변환하기 ```csharp using System; using System.Linq; class Program { static void Main() { int[] numbers = { 1, 2, 3, 4, 5 }; var result = numbers.Aggregate(0, (acc, x) => acc + x, total => total * 2); Console.WriteLine($"Result: {result}"); // 출력: Result: 30 } } ``` 이 예제에서는 배열의 합계를 구한 후, 최종 결과를 2배로 변환합니다. 결론 C 의 LINQ에서 `Aggregate` 메서드는 데이터 집계 및 누적 계산을 수행하는 강력한 도구입니다. 다양한 형태의 집계 작업을 수행할 수 있으며, 초기값과 집계 함수를 통해 유연하게 사용할 수 있습니다. 이를 통해 코드의 가독성을 높이고, 복잡한 루프를 간단하게 처리할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기