C#

[ITSkeleton] C# 배열 리스트 삭제 함수 Remove, RemoveAt, RemoveAll, RemoveRange

ITSkeleton 2018. 4. 17. 19:06
728x90
반응형

여러가지 상황에서 배열을 만들고 원하는 배열을 삭제해야할 일이 생기는 경우가 많습니다.

 

이 배열을 지우는 방법에는 무엇이 있을까요

 

먼저 배열을 생성해 줍니다

 

var testVal = new List<string>();

 

string을 저장할수있는 임의의 공간 testVal을 만들어 주었습니다.

 

값들을 집어넣어 볼까요~

 

for(int i=0; i<10; i++){

testVal.Add("testval"+i);

}

 

testVal[0] -> "testval0"

testVal[1] -> "testval1"

testVal[2] -> "testval2"

testVal[3] -> "testval3"

testVal[4] -> "testval4"

testVal[5] -> "testval5"

testVal[6] -> "testval6"

testVal[7] -> "testval7"

testVal[8] -> "testval8"

testVal[9] -> "testval9"

 

위와 같은 값들이 저장되어있겠죠?

 

Remove

 

testVal.Remove("testval1");

 

이렇게 적는다면 testval1의 값을 가지고있는 testVal[1]이 지워지게됩니다.

 

지워지게 되고나면 뒤의 2,3,4,5,6,7,8,9 는 앞으로 자동으로 당겨지게 되어있습니다.

 

RemoveAt

 

testVal.RemoveAt(0);

 

인덱스 값을 이용하여 배열을 지웁니다 인자값으로 int형의 정수 값이 들어갑니다.

 

0을 넣어주었으니 testVal[0] 의 배열이 지워지게 되겠죠?

 

728x90

RemoveAll

 

testVal.RemoveAll(d=>d.StartsWith("k"));

 

RemoveAll 같은경우 조건부가 존재합니다. 사실 RemoveAll만을 따로 다루어야할만큼 조건부

 

함수가 많아서... 여기서는 간단하게 StartsWith의 사용법에 대해서만 적어두겠습니다.

 

조건부 안에 있는 k 라는 string만을 지웁니다.

 

배열안에 k 의 string이 여러개가 들어있다면, 모두 지워버립니다.

 

RemoveRange

 

testVal.RemoveRange(0, 3);

 

RemoveRange는 두개의 int형 인자값을 받습니다.

 

RemoveRange(int index, int count) index에 적힌 부분 부터 count의 수 만큼을 지웁니다.

 

3을 적었으니 3개를 지우겠죠!

 

이렇게 배열 삭제에 대하여 알아봤습니다~

 

 

728x90
반응형