HOWTO · Csharp
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;
그런 다음 목록 l에 AddRange() 메서드를 사용하고 인수로 이전 프로세스에서 빌드한 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>의 용량이 증가합니다.
이는 새 카운트가 용량보다 클 때 발생합니다. 새 항목을 추가하기 전에 먼저 이전 요소가 새로 생성된 배열에 복사됩니다.