LINQ Aggregate Demystified: 단계별 가이드
LINQ의 Aggregate 기능은 종종 혼란의 원인이 될 수 있습니다. 이번 글에서는 Aggregate의 내부 동작을 자세히 알아보고 실제 사례를 통해 명확하고 간결한 설명을 제공하겠습니다.
Aggregate의 이해
Aggregate는 다음과 같은 작업입니다. 지정된 함수(람다 표현식)를 각 요소와 이전에 누적된 결과에 적용하여 일련의 요소를 반복합니다. 이는 본질적으로 요소에 대해 연속적인 연산을 수행하고 중간 결과를 앞으로 전달합니다.
예 1: 숫자 합산
숫자 목록을 합산하는 간단한 예부터 시작하겠습니다. :
var nums = new[] { 1, 2, 3, 4 }; var sum = nums.Aggregate((a, b) => a + b); Console.WriteLine(sum); // Output: 10
이 예에서 Aggregate 함수는 첫 번째 요소(1)로 결과를 초기화합니다. 그런 다음 람다 식(a b)을 현재 결과(1)와 다음 요소(2)에 적용하여 3을 얻습니다. 이 프로세스는 계속되어 각 요소를 이전 결과에 추가합니다.
예 2: 문자열에서 CSV 만들기
집계는 문자열 조작에도 사용할 수 있습니다. 문자 배열에서 쉼표로 구분된 문자열을 생성하는 방법은 다음과 같습니다.
var chars = new[] { "a", "b", "c", "d" }; var csv = chars.Aggregate((a, b) => a + "," + b); Console.WriteLine(csv); // Output: a,b,c,d
예 3: 숫자에 시드 곱하기
Aggregate는 다음과 같은 오버로드를 지원합니다. 계산을 시작하기 위해 초기 시드 값을 사용합니다. 다음 예를 고려하십시오.
var multipliers = new[] { 10, 20, 30, 40 }; var multiplied = multipliers.Aggregate(5, (a, b) => a * b); Console.WriteLine(multiplied); // Output: 1200000
이 경우 집계 연산은 시드 값(5)으로 시작하고 곱셈 람다 식(a * b)을 적용합니다. 시퀀스의 각 요소에 이전 결과를 곱하고 이월하여 최종 결과인 1200000을 생성합니다.
위 내용은 LINQ의 집계 함수 작동 방식: 단계별 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!