문제

그것은 c#을 초기화는 배열에,예를 들어,subindex1?

나 Office interop,그리고 모든 시설은 개체 배열을 시작하는 1(정 그것은 원래에서 프로그램 VB.NET 고),수정할 수 없습니다 그것은,당신은 당신을 설정하는 전체 배열을 위해 그것을 변경 내용을 적용합니다.

문제 해결 방법으로 나는 복제는 원본 배열,수정하는 것 중 하나,그리고 그것을 설정하는 전체적으로 때 나는 끝났어요.

하지만하면 그것을 만들 수 있었 새로운 non-zero 기반으로 배열

도움이 되었습니까?

해결책

당신이 사용할 수 있는 Array.CreateInstance.

배열 형태에서.NET

다른 팁

그것은 당신이 요청으로 표시됩니다.

// Construct an array containing ints that has a length of 10 and a lower bound of 1
Array lowerBoundArray = Array.CreateInstance(typeof(int), new int[1] { 10 }, new int[1] { 1 });

// insert 1 into position 1
lowerBoundArray.SetValue(1, 1);

//insert 2 into position 2
lowerBoundArray.SetValue(2, 2);

// IndexOutOfRangeException the lower bound of the array 
// is 1 and we are attempting to write into 0
lowerBoundArray.SetValue(1, 0);

하지 않습니다.지만,당신은 확실히 자신의 클래스입니다.그것은 배열이 있으로 개인 변수이고,사용자가 생각하는 그 배열의 시작에서 1,하지만 정말로 당신은 빼서 1 지에서 자신의 배열에 액세스합니다.

당신이 자신을 작성할 수 있습니다 array 클래스

나는 생각하지 않는 경우 수정이 가능합 시작 인덱스의 배열입니다.

나는 내 자신의 배열을 사용하여 제네릭하고 처리합니다.

유 const int'라는 이름 offset'값을 가진 하나,그리고 항상 추가는 귀하의 첨자가에 당신의 코드입니다.

나는 생각하지 않을 만들 수 있습 non-zero 기반으로 배열 C#지만,당신은 쉽게 쓰는 래퍼 클래스가 자신의 주위에 내장 된 데이터는 구조입니다.이 랩퍼 클래스 개최 개의 인스턴스는 배열을 입력할 필요합니다;과부하는[]indexing 연산자가 허용되지 않지만,추가할 수 있습니다 indexer 클래스를 만들처럼 행동하는 색인 배열을 참조하십시오 .Index 함수를 작성할 수 있음(추가하거나 빼기)1,모든 인덱스의 전달됩니다.

당신이 사용할 수 있습니다 다음의 개체에 다음과 같다,그것은 것이 제대로 작동하:

myArrayObject[1]; //would return the zeroth element.

에 VB6 변경할 수 있습 배열로 시작하 0 나 1 개,그래서 내가 생각하 VBScript 동일한 기능을 수행할 수 있습니다.C#,그것을 가능하지 않지만 간단하게 추가할 수있는 NULL 값에서 첫 번째는[0]start 실제 가치에[1].물론,이것은 작은 위험한...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top