티스토리 뷰

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
댓글
최근에 올라온 글
최근에 달린 댓글
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함