C#의 목록에 대한 AddRange 함수

Saad Aslam 2023년10월12일
  1. C#에서 AddRange() 함수의 중요성
  2. C#에서 AddRange() 함수 구현
C#의 목록에 대한 AddRange 함수

이 기사에서는 AddRange() 기능과 C# 프로그래밍 언어로 수행되는 작업의 데모를 제공합니다.

C#에서 AddRange() 함수의 중요성

목록의 AddRange 메서드를 사용하면 전체 구성 요소 모음을 한 번에 추가할 수 있습니다. 특정 컬렉션의 항목을 목록 끝에 추가할 때 C# 프로그래밍 언어의 AddRange 기능이 사용됩니다.

목록에 추가 방법을 계속 사용하는 번거로운 foreach 루프를 대신할 수 있습니다. 배열이나 다른 목록뿐만 아니라 다른 IEnumerable 컬렉션도 AddRange로 보낼 수 있습니다.

InsertRange()는 위에서 설명한 것과 유사한 작업을 수행하지만 인수로 시작점이 필요합니다. 먼저 C# 프로그래밍 언어용 List 기본 클래스 라이브러리에서 사용할 수 있는 AddRange() 인스턴스 메서드를 살펴봅니다.

InsertRange()AddRange() 함수를 구현하는 함수입니다. InsertRange() 주변의 래퍼 메서드인 AddRange()는 대상 위치로 대상 위치가 0입니다.

AddRange 메서드는 몇 가지 주요 측면에서 배열과 다릅니다. 목록의 크기가 동적으로 증가할 수 있지만 배열은 이 방법으로 확장할 수 없습니다.

System.Collections.Generic 네임스페이스에는 List 클래스에 대한 AddRange(T) 함수가 포함되어 있습니다. 이 기능은 필수 항목으로 간주되는 collection 매개변수를 수신해야 합니다.

System.Collections.Generic.IEnumerableT>collection 인수의 값 유형입니다. 항목이 ListT>의 끝에 추가되어야 하는 컬렉션은 IEnumerableT>로 표시됩니다.

컬렉션 구성 요소가 저장되는 순서는 ListT>에 의해 유지됩니다. 다음 설명은 함수의 프로토타입을 보여줍니다.

public void AddRange(System.Collections.Generic.IEnumerable<T> collection);

C#에서 AddRange() 함수 구현

이제 모든 것이 준비되었으므로 더 잘 이해할 수 있도록 몇 가지 사례를 살펴보겠습니다. 이것은 AddRange() 함수가 목표를 달성하는 방법을 설명할 수 있는 가장 기본적인 예입니다.

먼저 정수 목록을 만들고 변수 이름을 l로 지정합니다.

List<int> l = new List<int>();

정수 목록을 생성한 후 다음 단계는 방금 생성한 목록에 일부 항목을 추가하는 것입니다.

l.Add(1);
l.Add(2);
l.Add(3);
l.Add(4);

다음 단계는 크기가 4인 정수 유형의 배열인 목록과 동일한 유형의 배열을 빌드한 다음 배열을 채우는 것입니다.

int[] arr = new int[4];
arr[0] = 5;
arr[1] = 6;
arr[2] = 7;
arr[3] = 8;

그런 다음 목록 lAddRange() 메서드를 사용하고 인수로 이전 프로세스에서 빌드한 arr을 제공합니다.

l.AddRange(arr);

이제 우리가 가지고 있는 목록이 표시됩니다.

foreach (int val in l) {
  Console.WriteLine(val);
}

각 배열 구성원도 목록에 포함되어 있음을 관찰했습니다.

소스 코드

using System;
using System.Collections.Generic;

public class AddRangeFunction {
  public static void Main() {
    List<int> l = new List<int>();
    l.Add(1);
    l.Add(2);
    l.Add(3);
    l.Add(4);

    int[] arr = new int[4];
    arr[0] = 5;
    arr[1] = 6;
    arr[2] = 7;
    arr[3] = 8;

    l.AddRange(arr);

    foreach (int val in l) {
      Console.WriteLine(val);
    }
  }
}

출력:

1
2
3
4
5
6
7
8

여기 또 다른 예가 있습니다.

using System;
using System.Collections.Generic;

public class AddRangeFunction {
  public static void Main() {
    List<int> l = new List<int>();
    int[] arr = new int[4];
    arr[0] = 5;
    arr[1] = 6;
    arr[2] = 7;
    arr[3] = 8;

    l.AddRange(arr);

    foreach (int val in l) {
      Console.WriteLine(val);
    }
  }
}

출력:

5
6
7
8

이 경우 이전 절차와 동일한 절차를 따랐습니다. 그러나이 특별한 경우에는 우리 목록에 아무것도 없었습니다.

우리 목록의 항목은 체크 표시되지 않았습니다. 이전에 비어 있던 목록에 배열을 포함시켰습니다.

이 예제는 빈 목록에 항목을 추가하는 것이 가능함을 보여줍니다. 출력을 보면 배열의 값이 목록에 추가되었음을 알 수 있습니다.

새 개수(현재 개수에 컬렉션 크기를 더한 값)가 용량보다 크다고 가정합니다. 이 경우 추가 항목을 수용하기 위해 내부 배열을 자동으로 재할당하여 ListT>의 용량이 증가합니다.

이는 새 카운트가 용량보다 클 때 발생합니다. 새 항목을 추가하기 전에 먼저 이전 요소가 새로 생성된 배열에 복사됩니다.

작가: Saad Aslam
Saad Aslam avatar Saad Aslam avatar

I'm a Flutter application developer with 1 year of professional experience in the field. I've created applications for both, android and iOS using AWS and Firebase, as the backend. I've written articles relating to the theoretical and problem-solving aspects of C, C++, and C#. I'm currently enrolled in an undergraduate program for Information Technology.

LinkedIn

관련 문장 - Csharp List