C#에서 리스트나 컬렉션 같은 시퀀스의 모든 요소 합계를 구하려면 LINQ에서 제공하는 Sum() 메서드를 활용할 수 있습니다. 이 글에서는 AsQueryable()과 함께 Sum() 메서드를 사용해 정수 리스트의 합을 구하는 방법을 예제와 함께 살펴보겠습니다.
1. 시퀀스(리스트) 생성하기
가장 먼저 합계를 구할 숫자 시퀀스를 준비합니다. 아래 코드처럼 List<int>를 선언하고 초기값을 지정합니다.
List<int> myList = new List<int> { 1, 2, 3, 4, 5 };2. Sum() 메서드로 합계 계산하기
리스트에 AsQueryable()을 호출하여 IQueryable 형태로 변환한 뒤, Sum() 메서드를 사용하면 전체 요소의 합을 손쉽게 구할 수 있습니다.
int sum = myList.AsQueryable().Sum();
전체 예제 코드
using System;
using System.Linq;
using System.Collections.Generic;
public class Demo {
public static void Main() {
List<int> myList = new List<int> { 1, 2, 3, 4, 5 };
Console.WriteLine("리스트의 요소들...");
foreach (int res in myList) {
Console.WriteLine(res);
}
int sum = myList.AsQueryable().Sum();
Console.WriteLine("합계 = {0}", sum);
}
}실행 결과
리스트의 요소들... 1 2 3 4 5 합계 = 15
정리
AsQueryable().Sum()은 컬렉션의 숫자 요소들을 한 번에 집계할 수 있는 간편한 방법입니다. 참고로 단순히 List<int>의 합만 필요하다면 myList.Sum()처럼 AsQueryable() 없이 바로 호출해도 동일한 결과를 얻을 수 있습니다. 또한 Sum() 메서드는 조건자(predicate)를 인자로 받아 특정 조건을 만족하는 요소만 골라 합산하는 것도 가능합니다.