Language/C#

[C#] Skip

리네엔 2024. 11. 6. 22:25

C#에서 배열의 Skip() 메서드 사용법: 배열 요소를 쉽게 건너뛰기

C#에서 배열이나 리스트와 같은 컬렉션을 다루다 보면, 특정 요소를 건너뛰고 작업하고 싶을 때가 있습니다. 예를 들어, 첫 번째 요소를 제외하고 나머지 모든 요소를 처리하고 싶다면 어떻게 할까요? 이때 유용하게 사용할 수 있는 것이 바로 Skip() 메서드입니다. 이번 포스팅에서는 Skip() 메서드가 무엇인지, 그리고 실무에서 어떻게 사용할 수 있는지 간단하게 설명드리겠습니다.

Skip() 메서드란?

Skip() 메서드는 LINQ (Language Integrated Query)에서 제공하는 확장 메서드로, 컬렉션의 앞부분 요소를 건너뛰고 나머지 요소를 반환합니다. 이 메서드는 컬렉션의 일부를 무시하고 나머지 요소로 새로운 컬렉션을 만들어내는 데 매우 유용합니다.

다음은 기본적인 사용 예시입니다:

using System;
using System.Linq;

class Program
{
    static void Main()
    {
        int[] numbers = { 1, 2, 3, 4, 5 };

        // 첫 번째 요소를 건너뛰고 나머지 요소들을 가져오기
        var skippedNumbers = numbers.Skip(1);

        Console.WriteLine("Skipped Numbers:");
        foreach (var number in skippedNumbers)
        {
            Console.WriteLine(number);
        }
    }
}

출력 결과

Skipped Numbers:
2
3
4
5

위 코드에서 numbers.Skip(1)은 배열의 첫 번째 요소인 1을 건너뛰고, 나머지 요소 { 2, 3, 4, 5 }를 반환합니다. Skip()은 원래의 배열을 변경하지 않고, 새로운 시퀀스를 반환하므로 원본 데이터를 안전하게 유지하면서 필요한 부분만 다룰 수 있습니다.

다양한 사용 예제

Skip() 메서드는 여러 상황에서 유용하게 사용될 수 있습니다. 아래 몇 가지 예제를 통해 다양한 활용 방법을 살펴보겠습니다.

1. 특정 개수의 요소 건너뛰기

Skip() 메서드는 원하는 개수만큼 요소를 건너뛸 수 있습니다. 예를 들어, 처음 두 개의 요소를 건너뛰고 싶다면 다음과 같이 사용할 수 있습니다.

var skipped = numbers.Skip(2); // { 3, 4, 5 }

이렇게 하면 첫 두 개의 요소 12를 건너뛰고 나머지 요소만을 포함한 시퀀스를 얻게 됩니다.

2. LINQ와 함께 사용하기

Skip()은 다른 LINQ 메서드들과 결합해서 사용할 때 강력한 도구가 됩니다. 예를 들어, Take()와 결합하면 특정 범위의 요소를 추출하는 데 사용할 수 있습니다.

var range = numbers.Skip(1).Take(3); // { 2, 3, 4 }

이 코드는 첫 번째 요소를 건너뛰고 그 다음 세 개의 요소를 가져옵니다. 즉, { 2, 3, 4 }가 반환됩니다.

실제 활용 예시: 경로 지점 건너뛰기

게임 개발이나 경로 찾기 로직에서, 첫 번째 경로 지점을 제외한 나머지 지점을 다루고 싶을 때가 있습니다. 예를 들어, 플레이어의 현재 위치를 기준으로 다음 경로 지점부터 이동을 시작하고 싶다면 Skip()을 유용하게 사용할 수 있습니다.

var wayPoints = new[] { "Start", "PointA", "PointB", "PointC" };

// 시작 지점을 제외한 나머지 경로 지점을 사용
var nextWayPoints = wayPoints.Skip(1);

foreach (var point in nextWayPoints)
{
    Console.WriteLine(point);
}

출력 결과

PointA
PointB
PointC

Skip(1)을 통해 시작 지점("Start")을 건너뛰고, 나머지 경로 지점들만을 반복 처리할 수 있습니다. 이를 통해 경로 탐색 로직을 보다 간결하고 효율적으로 작성할 수 있습니다.

결론

C#의 Skip() 메서드는 특정 개수의 요소를 건너뛰고 나머지 시퀀스를 처리하는 데 매우 유용한 기능입니다. 특히 게임 개발에서 경로 지점 처리와 같이 일부 요소를 제외하고 나머지를 순회해야 하는 경우에 적합합니다. LINQ와 결합하여 더욱 강력한 기능을 제공할 수 있으니, 다양한 상황에서 적극적으로 활용해 보시길 바랍니다.

'Language > C#' 카테고리의 다른 글

[C#] Span  (0) 2024.11.12
[C#] Reflection - MemberInfo/FieldInfo / PropertyInfo  (0) 2024.10.30
[C#] Const와 Readonly  (0) 2024.10.14
[C#] Serialization & Deserializaton  (0) 2024.10.14
[C#] String Builder  (0) 2024.10.14