programing

.NET: 어레이 목록 대 목록

newsource 2023. 5. 15. 21:56

.NET: 어레이 목록 대 목록

VB에서 ArrayList와 List의 차이점은 무엇입니까?그물

ArrayLists는 기본적으로 사용되지 않으며(캐스트와 함께 사용해야 함) 항목을 상자에 넣어야 하기 때문에 값 유형에 대한 속도가 느리고 공간 효율성이 떨어집니다.

일반 목록은 에서 소개되었습니다.넷 2.0과 그것이 최선의 방법입니다.종종 목록이 배열보다 낫고 단점이 거의 없습니다.

이러한 컬렉션은 의 일부이기 때문입니다.NetBase 클래스 라이브러리, 이 권장 사항은 C# 및 모든 항목에도 적용됩니다.제네릭을 지원하는 넷 언어 - VB에만 국한되지 않습니다.그물.

목록은 ArrayList의 일반적인 구현입니다.ArrayList는 모든 개체를 System으로 저장합니다.그런 다음 적절한 유형으로 캐스트해야 하는 개체입니다.ArrayLists는 이기종이므로 List는 하나의 개체 유형(일반 매개 변수로 제공된 유형)만 저장할 수 있습니다.

List<string> strList; // can store only strings
List<int> intList; // can store only ints
ArrayList someList; // can store anything

ArrayLists는 32비트 시스템의 32비트 참조 및 복싱과 달리 64비트 와이드 메모리 참조로 인해 64비트에서 원시 요소를 저장하는 데 사용할 경우 공간 효율성이 훨씬 더 떨어집니다.

자세한 내용은 다음을 참조하십시오. http://blogs.msdn.com/joshwil/archive/2004/04/13/112598.aspx

ArrayList를 사용하여 다음을 작성할 수 있습니다.

Dim customers as new ArrayList
Dim c as new Customer
Dim m as new Manager
customers.Add(c)
customers.Add(m)

'This will cause an exception '  
For each c as Customer in customers
console.writeline(c.Name)
Next

고객 목록은 고객으로부터 상속되는 고객 유형 및 유형의 개체만 허용하므로 이러한 실수를 범할 수 없습니다.

관련 없는 유형의 개체를 동일한 컬렉션에 넣어야 하는 경우에도 List(Of Object)는 서로 다른 유형을 처리하고 있음을 명시하므로 더 나은 선택입니다.

목록은 제네릭을 사용하여 특정 유형의 개체만 넣을 수 있으므로 추가 유형 검사를 수행할 수 있으며 복싱 및 복싱 해제로 인한 처리 시간을 줄일 수 있습니다.배열 목록에서 이 값을 사용할 수 없습니다.대부분의 경우 배열 목록 대신 목록을 사용합니다.

언급URL : https://stackoverflow.com/questions/365482/net-arraylist-vs-list