C#/LINQ

[C#]LINQ 데이터 추가 방법 - Append, Prepend 메서드

DevStory 2022. 8. 14.

LINQ 데이터 추가 방법

이번 포스팅은 데이터 집합에 값을 추가할 수 있는 다음 두 가지 메서드를 소개합니다.

- Append()

- Prepend()

 

참고로 Append(), Prepend() 메서드는 .Net Framework 4.7.1 이상에서 제공하는 메서드이므로 이전 버전에서는 사용할 수 없습니다.


Append 메서드

C#의 Linq에서 제공하는 Append() 메서드는 데이터 집합 마지막 위치에 값을 추가하는 용도로 사용됩니다. Append() 메서드는 기존 데이터 집합을 수정하지 않으며, 값이 추가된 새로운 데이터 집합을 반환합니다.

public static IEnumerable<TSource> Append<TSource>(
  this IEnumerable<TSource> source, 
  TSource element);

Append() 메서드는 IEnumerable 인터페이스의 확장 메서드이며, 데이터 집합과 동일한 타입의 값을 추가할 수 있습니다.


예제 1. Append 메서드 사용 방법

다음 예제는 1부터 3까지 int 타입의 값을 가지는 List에서 Append() 메서드를 사용하여 마지막 위치에 4를 추가합니다.

class Program
{
  static void Main(string[] args)
  {
    List<int> intList = new List<int>()
    {
      1, 2, 3
    };

    List<int> appendResult = intList.Append(4).ToList();

    Console.WriteLine("intList의 값");
    intList.ForEach(num => Console.Write(num + " "));

    Console.WriteLine("\n\nappendResult 값");
    appendResult.ForEach(num => Console.Write(num + " "));
  }
}

[실행 결과]

intList의 값
1 2 3

appendResult 값
1 2 3 4

Append() 메서드는 IEnumerable<TResult>를 반환합니다. 따라서, List로 반환하고 싶은 경우 ToList() 메서드를 호출합니다.

 

실행 결과에서 확인할 수 있듯이 append() 메서드는 기존 데이터 집합의 값을 변경하지 않습니다. intList 마지막 위치에 4가 추가된 새로운 데이터 집합을 반환합니다.


Prepend 메서드

C#의 Linq에서 제공하는 Prepend() 메서드는 데이터 집합 처음 위치에 값을 추가하는 용도로 사용됩니다. Prepend() 메서드는 기존 데이터 집합을 수정하지 않으며, 값이 추가된 새로운 데이터 집합을 반환합니다.

public static IEnumerable<TSource> Prepend<TSource>(
  this IEnumerable<TSource> source, 
  TSource element);

Prepend() 메서드는 IEnumerable 인터페이스의 확장 메서드이며, 데이터 집합과 동일한 타입의 값을 추가할 수 있습니다.


예제 1. Prepend 메서드 사용 방법

다음 예제는 1부터 3까지 int 타입의 값을 가지는 List에서 Prepend() 메서드를 사용하여 처음 위치에 0을 추가합니다.

class Program
{
  static void Main(string[] args)
  {
    List<int> intList = new List<int>()
    {
      1, 2, 3
    };

    List<int> prependResult = intList.Prepend(0).ToList();

    Console.WriteLine("intList의 값");
    intList.ForEach(num => Console.Write(num + " "));

    Console.WriteLine("\n\nprependResult 값");
    prependResult.ForEach(num => Console.Write(num + " "));
  }
}

[실행 결과]

intList의 값
1 2 3

prependResult 값
0 1 2 3

Append() 메서드와 마찬가지로 IEnumerable<TResult>를 반환합니다. 따라서, List로 반환하고 싶은 경우 Prepend() 메서드 뒤에 ToList() 메서드를 호출합니다.

 

실행 결과에서 확인할 수 있듯이 Prepend() 메서드는 기존 데이터 집합의 값을 변경하지 않습니다. intList 처음 위치에 0이 추가된 새로운 데이터 집합을 반환합니다.

반응형

댓글