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

C#에서 리스트(List)의 각 요소에 대해 지정된 작업을 수행하는 방법

C#에서 List<T>의 각 요소에 대해 지정된 작업을 수행하려면 ForEach() 메서드를 사용할 수 있습니다. 이 메서드는 리스트의 모든 요소를 순회하면서, 매개변수로 전달된 대리자(delegate)에 정의된 동작을 각 요소에 차례대로 적용합니다.

ForEach 메서드의 동작 원리

List<T> 클래스의 ForEach 메서드는 Action<T> 대리자를 인수로 받습니다. 리스트에 포함된 각 요소가 이 대리자에 순서대로 전달되며, 대리자 내부에 작성한 로직이 요소마다 실행됩니다.

예제 1: 각 요소에 10 곱하기

다음은 리스트의 각 요소에 10을 곱한 결과를 출력하는 예제입니다.

using System;
using System.Collections.Generic;

public class Demo {
    public static void demo(int s){
        s = s * 10;
        Console.WriteLine(s);
    }

    public static void Main(String[] args){
        List<int> list = new List<int>();
        list.Add(25);
        list.Add(50);
        list.Add(75);
        list.Add(100);
        list.Add(200);
        list.Add(250);
        list.Add(275);
        list.Add(300);

        Console.WriteLine("List...");
        foreach (int i in list){
            Console.WriteLine(i);
        }

        Console.WriteLine("\nUpdated List...");
        list.ForEach(demo);
    }
}

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

List...
25
50
75
100
200
250
275
300

Updated List...
250
500
750
1000
2000
2500
2750
3000

예제 2: 각 요소에서 50 빼기

이번에는 각 요소에서 50을 뺀 값을 출력하는 예제를 살펴보겠습니다.

using System;
using System.Collections.Generic;

public class Demo {
    public static void demo(int s){
        s = s - 50;
        Console.WriteLine(s);
    }

    public static void Main(String[] args){
        List<int> list = new List<int>();
        list.Add(25);
        list.Add(50);
        list.Add(75);
        list.Add(100);
        list.Add(200);
        list.Add(250);
        list.Add(275);
        list.Add(300);

        Console.WriteLine("List...");
        foreach (int i in list){
            Console.WriteLine(i);
        }

        Console.WriteLine("\nUpdated List...");
        list.ForEach(demo);
    }
}

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

List...
25
50
75
100
200
250
275
300

Updated List...
-25
0
25
50
150
200
225
250

참고: 람다 식으로 더 간결하게 작성하기

별도의 메서드를 정의하지 않고 람다 식(lambda expression)을 사용하면 코드를 훨씬 간결하게 만들 수 있습니다.

// 각 요소에 10을 곱해 출력
list.ForEach(s => Console.WriteLine(s * 10));

// 각 요소에서 50을 빼서 출력
list.ForEach(s => Console.WriteLine(s - 50));

이처럼 ForEach 메서드를 활용하면 반복문을 직접 작성하는 것보다 의도가 명확하고 가독성 좋은 코드를 작성할 수 있습니다.