2008-09-17 3 views
3

정수 배열처럼 값 목록을 지정하여 arraylist를 채우고 싶습니다. 그러나 "추가"메서드를 반복적으로 호출하지 않으면이를 수행하는 방법이 확실하지 않습니다.C# : 암시 적 Arraylist 할당이 가능합니까?

예를 들어, {1, 2, 3, "string1", "string2"}을 arraylist에 지정하고 싶습니다. 다른 배열에 대해서는 다음과 같이 할당 할 수 있습니다.

int[] IntArray = {1,2,3}; 

arraylist와 비슷한 방법이 있습니까? addrange 메서드를 시도했지만 중괄호 메서드는 ICollection 인터페이스를 구현하지 않습니다.

+0

현대 컬렉션 중 하나 대신 ArrayList를 사용하려는 이유를 설명하십시오. –

+0

저는 C#을 사용하는 데 상대적으로 새로운데 ArrayList 컬렉션은 사용법을 배웠던 첫 번째 컬렉션이었습니다. 내가 무엇을 사용할 수 있는지에 대해 더 잘 알고 있다면 듣고 싶습니다. – Lyndon

+0

"현대"컬렉션은 1.1 앱을 지원/유지해야하는 경우 존재하지 않을 수 있습니다. –

답변

7

배열 목록에는 Array 클래스에 의해 구현되는 ICollection을 허용하는 ctor가 있습니다.

object[] myArray = new object[] {1,2,3,"string1","string2"}; 
ArrayList myArrayList = new ArrayList(myArray); 
14

사용중인 C#의 버전에 따라 다른 옵션이 있습니다. Scott Gu's Blog

가 여기에 문제의 예에서

C# 3.0 수집 초기화, 세부 사항이있다. 당신이 언급 한 바와 같이 다시는 옵션이되지 않을 수도 있지만

ArrayList list = new ArrayList {1,2,3}; 

는 그리고 당신이 컬렉션 개체를 초기화하는 경우, 대부분은 AddRange와 유사한 구성 요소를 가지고 생성자를 가지고있다.

+0

내가 필요한 것, ty – Paulj

0

컬렉션 초기화 도구가있는 C# 3.0을 사용하지 않는다고 가정합니다. 당신이 임시 배열을 만드는 오버 헤드에 대해 방해하지 않는 경우, 당신은 1.1/2.0에서 다음과 같이 그것을 할 수 :

ArrayList list = new ArrayList(new object[] { 1, 2, 3, "string1", "string2"}); 
0

(내 자신의 질문에 대답의 종류하지만 ...)

을 내가 원하는 무엇을 발견했습니다 가장 가까운 것은 ArrayList.Adapter 방법을 활용하는 것입니다

object[] values = { 1, 2, 3, "string1", "string2" }; 
ArrayList AL = new ArrayList(); 
AL = ArrayList.Adapter(values); 

//or during intialization 
ArrayList AL2 = ArrayList.Adapter(values); 

이 내가 필요 충분합니다,하지만 난을 만들지 않고는 한 줄에서 수행 할 수있는 기대했다 누군가 다른 사람이 제안한대로 임시 배열.

1

귀하의 의견은 발견 한 첫 번째 구성 요소이므로 ArrayList를 선택했다는 것을 의미합니다.

단순히 정수 목록을 찾고 있다고 가정 할 때 이것이 아마도 가장 좋은 방법 일 것입니다.

List<int> list = new List<int>{1,2,3}; 

그리고 C# 2.0 (제네릭은 있지만 콜렉션 초기화 프로그램이 아님)을 사용하는 경우.

List<int> list = new List<int>(new int[] {1, 2, 3}); 

이전 버전에서는 int [] 형식이 올바르지 않을 수 있지만 배열의 항목 수를 지정해야 할 수 있습니다.