2011-01-27 4 views
0

내 ArrayList에 20 개의 요소가 있다고 가정 해 보겠습니다. 글쎄요, 언젠가는 런타임에 언젠가는 10 개의 요소 만 가지기를 원할 것입니다. 그래서 다른 10 개의 인덱스 (9에서 19까지)는 전혀 존재하지 않습니다. 어떻게해야합니까? 당신이 존재하지 않는 요소에 대한 메모리 공간을 사용하지 않도록 찾고 있다면내 ArrayList의 크기를 줄이는 방법은 무엇입니까?

+0

arraylist를 사용하지 마십시오. 기간. –

답변

2

ArrayList가 아닌 Array를 사용하면 단일 파트에 대해 ArrayList.Remove()를 사용하고 범위에 대해 ArrayList.RemoveRange (x, list.Count-x)를 사용하기 만합니다.

1

, 당신은 TrimToSize 방법으로 시도 할 수 있습니다 :

http://msdn.microsoft.com/en-us/library/system.collections.arraylist.trimtosize.aspx

그것은 배열 오버 헤드를 최소화, 용량을 제한하여 현재 항목으로.

이미 존재하는 경우이를 제거한 다음이 메서드를 호출해야합니다.

나는 당신이 정확히 무엇을 찾고 있는지 잘 모르겠다. 그래서 더 자세한 내용은 훌륭 할 것이다.

3

왜 비 제너릭 컬렉션을 사용하고 있습니까? 대신 List<T>을 사용하십시오. 그리고 그것에 Remove() 방법을 사용할 수 있습니다. 당신은 단지 용량을 변경하지 않고 요소를 제거하려면

관련 문제