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

C#에서 리스트(List)의 모든 숫자를 곱하는 방법

C#에서 List<int>에 저장된 모든 숫자를 곱하는 방법을 단계별로 알아보겠습니다. 핵심 원리는 간단합니다. 곱셈의 항등원인 1로 결과 변수를 초기화한 뒤, 리스트의 각 요소를 순회하면서 차례대로 곱해주면 됩니다.

1단계: 리스트 생성

먼저 정수형 리스트를 선언하고 곱할 숫자들을 추가합니다.

List<int> myList = new List<int>() {
    5,
    10,
    7
};

2단계: 곱셈 결과 변수 초기화

곱셈 결과를 저장할 변수를 1로 초기화합니다. 0이 아닌 1로 시작해야 하는 이유는, 어떤 수에 0을 곱하면 결과가 항상 0이 되어버리기 때문입니다. 1은 곱셈의 항등원이므로 안전한 시작 값이 됩니다.

int prod = 1;

3단계: foreach 반복문으로 곱 구하기

foreach 문으로 리스트를 순회하면서 각 요소를 prod 변수에 계속 곱해줍니다.

foreach(int i in myList) {
    prod = prod * i;
}

전체 예제 코드

지금까지의 과정을 하나의 프로그램으로 정리하면 다음과 같습니다.

using System;
using System.Collections.Generic;

public class Program {
    public static void Main() {
        List<int> myList = new List<int>() {
            5,
            10,
            7
        };
        Console.WriteLine("List: ");
        foreach(int i in myList) {
            Console.WriteLine(i);
        }
        int prod = 1;
        foreach(int i in myList) {
            prod = prod * i;
        }
        Console.WriteLine("Product: {0}", prod);
    }
}

실행 결과

List:
5
10
7
Product: 350

리스트의 요소 5 × 10 × 7이 계산되어 최종 곱인 350이 출력됩니다.

참고: LINQ Aggregate로 더 간결하게

C#에서는 LINQ의 Aggregate 메서드를 활용하면 반복문 없이 한 줄로 동일한 결과를 얻을 수 있습니다.

using System.Linq;

int product = myList.Aggregate((a, b) => a * b);

Aggregate는 첫 번째 요소를 시작 값으로 삼아 인접한 요소들을 순차적으로 연산하므로, 별도의 초기화 변수가 필요하지 않습니다. 코드의 가독성과 간결함을 중시한다면 이 방식도 좋은 선택입니다.