asp.net (c#)은 동적 배열은 지원합니다.

대단히 편리합니다.

 

 

1번 선수 : Array (기본 배열)

 

사용법은 아래와 같이 간단히 사용할 수 있습니다.

Array.Resize(ref 배열명, 배열명.Length + 1);

 

 

그럼 예문 하나 보여드리겠습니다.

예문 1)

 

 

string[] ArrArray = new string[3];

 

ArrArray[0] = "00";

ArrArray[1] = "11";

ArrArray[2] = "22";

 

Array.Resize(ref ArrArray, ArrArray.Length - 1);

Array.Resize(ref ArrArray, ArrArray.Length + 1);

 

for (int i = 0; i < ArrArray.Length; i++)

{

if (!string.IsNullOrEmpty(ArrArray[i]))

{

Response.Write("ArrData[" + i + "] : " + ArrArray[i] + ";<br>");

}

}

 

 

결과 1)

 

ArrData[0] : 00;

ArrData[1] : 11;

 

잘 나오죠.

원하는 결과값도 나오고 건드리지않은 배열쪽은 데이터도 무탈하게 저장되어있습니다.

사용법도 간단하죠.

 

하지만 안으로 들여다보면 배열을 복사해서 처리하는 형태를 취하고 있습니다. 효율적이다라고 말하기는 힘들것 같습니다.

 

이래서 준비된 녀석들이 있습니다.

 

 

2번 선수 : ArrayList

 

@using System.Collections 의 ArrayList Class입니다.

내부는 Object Type으로 되어 있습니다. 사용시 박싱 언박싱을 거치게 됩니다.

하지만 하나의 컬렉션에 다양한 Type을 담을 수 있습니다.

.NET Framework 1.1 이후 사용가능

 

그럼 예문 갑니다.

예문 2) 

 

 

 

ArrayList ArrList = new ArrayList();

 

ArrList.Add("AA");        // 최초 삽입이기에 index 0 에 자리잡습니다.
ArrList.Add("BB");        // index 1
ArrList.Add("CC");        // index 2

 

ArrList.RemoveAt(1);    // index 1 삭제 (index 1 의 삭제로 index 2 가 index 1로 대체)

 

ArrList.Add("DD");        // Add는 맨 끝에 추가하니깐 index 2 에 삽입됨

 

ArrList.Insert(2, "EE");    // index 2 자리에 비집고 들어감. 기존에 있던 index 2 이후로 한자리씩 밀려남

 

ArrList[0] = "FF";         // index 0 자리에 값 바꿈

 

for (int i = 0; i < ArrList.Count; i++)

{

Response.Write("ArrList[" + i + "] : " + ArrList[i] + ";<br>");

}

 

 

결과 2)

 

ArrList[0] : FF;

ArrList[1] : CC;

ArrList[2] : EE;

ArrList[3] : DD; 

 

 

 

상당히 조작히 편리한 Class 입니다.

 

 

3번 선수 : List<T>

 

@using System.Collections.Generic 의 List<T> Class 입니다.

사용시 박싱 언박싱을 거치지않습니다. 이렇게 보면 ArrayList보다 좋아보이지만...

하나의 컬렉션에 명시된 Type 하나만 담을 수 있습니다.

다양한 Type을 담아야하신다면 ArrayList가 효과적일것이며 그렇지않다면 List<T> Class가 효과적이실것입니다.

사용법은 ArrayList와 유사합니다.

.NET Framework 2.0 이후 사용가능

 

예문 3)

 

@using System.Collections.Generic;

 

List<string> GenericList = new List<string>();

 

GenericList.Add("가가");        // 최초 삽입으로 index 0
GenericList.Add("나나");        // index 1
GenericList.Add("다다");        // index 2

 

GenericList.RemoveAt(1);        // index 1 삭제., index 2 가 index 1 로 대체

 

GenericList.Add("라라");         // index 2


GenericList.Insert(2, "마마");    // index 2 에 삽입. 기존 index 2 이후 데이터가 1 자리씩 밀림

 

GenericList[0] = "바바";         // index 0 값 변경

 

for (int i = 0; i < GenericList.Count; i++)
{
    Response.Write("GenericList[" + i + "] : " + GenericList[i] + ";<br>");
}

 

 

결과 3)

 

GenericList[0] : 바바;

GenericList[1] : 다다;

GenericList[2] : 마마;

GenericList[3] : 라라;

 

 

결과 또한 ArrayList 와 같다.

 

본인이 원하는 형태와 타입에 맞게 골라쓰면 되겠다!



Posted by T.t.
: