Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#에서 시퀀스의 합을 구하는 방법 - AsQueryable().Sum() 활용법

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)를 인자로 받아 특정 조건을 만족하는 요소만 골라 합산하는 것도 가능합니다.