티스토리 뷰
728x90
string conditions = "This<|>is<|>a<|>Test<|>Data";
string[] condary = conditions.Split(new string[] { "<|>" }, StringSplitOptions.RemoveEmptyEntries);
foreach (var itm in condary)
{
tbl_condition.Rows.Add(itm);
}
C#에서 배열은 리스트나 사전 타입과 달리 항목의 개수가 고정된 데이터 형식이다. 위의 예제 코드에서는 conditions라는 문자열을 Split 함수를 사용하여 문자열 구분자인 "<|>"로 잘라서 condary라는 문자열 배열에 저장하는 작업을 수행했는데 그 결과 배열은 5개의 항목 개수를 가지게 되었다.

이 상태에서 항목을 추가하려면 리스트의 경우에는 add 함수로 간단하게 처리할 수 있지만 배열에서는 배열 크기를 조정하는 작업을 먼저 수행해야 한다.
Array.Resize(ref condary, condary.Length + 1);
condary[condary.Length - 1] = newitem;
위의 코드처럼 Array.Resize()로 배열 크기를 조정하고 확장된 공간에 새로운 항목을 저장하는 방식이다. 주의할 점은 이 과정은 새로운 배열을 생성하는 방식으로 진행된다는 것을 감안해야 하고 배열을 ref로 하여 인수로 넘겨야 한다는 점이다.
배열을 확장시키는 것과 마찬가지로 축소도 가능하지만 크기 축소를 하면 뒷부분이 잘려 나간다. 그런데, 배열 중간의 특정 항목을 제거하고 싶다면 Array.Resize() 보다는 다음과 같이 LINQ 구문을 사용하면 간단하게 처리할 수 있다.
condary = condary.Where((s, idx) => idx != rowidx).ToArray();
rowidx로 지정한 인덱스의 항목을 제외하고 나머지 내용을 가진 새로운 배열을 생성하는 방법이다.
이와 같은 배열 처리 방법은 다른 데이터 타입의 배열에도 마찬가지로 적용할 수 있다. 단, 빈번한 배열 크기 변경은 성능에 영향을 미칠 수 있으므로 주의해야 한다.
728x90
'프로그래밍' 카테고리의 다른 글
| C#으로 문자 보내기 (0) | 2025.08.29 |
|---|---|
| C#으로 이메일 보내기 (0) | 2025.08.29 |
| 윈도우 10에서 프로그램 비정상 종료시 덤프를 남기도록 설정하는 방법 (0) | 2025.08.18 |
| C# 라운드 박스 컨트롤 만들기 (0) | 2025.08.06 |
| PHP에서 동적으로 압축 파일을 생성해서 다운로드시키기 (0) | 2025.08.01 |
댓글