문제

빈 1차원 문자열 배열을 어떻게 만들 수 있나요?

도움이 되었습니까?

해결책

Dim strEmpty(-1)를 문자열로

다른 팁

VB는 배열 선언에서 0 인덱스, 그래서 뭔가 Dim myArray(10) as String 당신에게 준다 11 강요.C 언어를 번역할 때 흔히 저지르는 실수입니다.

따라서 빈 배열의 경우 다음 중 하나가 작동합니다.

Dim str(-1) as String ' -1 + 1 = 0, so this has 0 elements
Dim str() as String = New String() { } ' implicit size, initialized to empty

String을 두 번 포함할 필요가 없으며 New를 사용할 필요도 없습니다.
다음 중 하나가 작동합니다 ...

Dim strings() as String = {}
Dim strings as String() = {}

당신이 만든 배열 Dim s(0) As String 비어 있지 않음

VB.Net에서 배열에 사용하는 아래 첨자는 마지막 요소의 인덱스입니다.VB.Net은 기본적으로 0에서 인덱싱을 시작하므로 이미 하나의 요소가 있는 배열이 있습니다.

대신 다음을 사용해보십시오. System.Collections.Specialized.StringCollection 또는 (더 나은) System.Collections.Generic.List(Of String).항목을 추가하고 제거하는 데 더 적합하다는 점을 제외하면 문자열 배열과 거의 같습니다.솔직하게 말하자면:당신은 거의 비어 있는 추가하고 싶지 않은 문자열 배열 적어도 그것에 대한 한 가지 요소.

빈 문자열 배열을 정말로 원한다면 다음과 같이 선언하십시오.

Dim s As String()

또는

Dim t() As String

다음과 같은 것 :

Dim myArray(9) as String

10개의 문자열 참조 배열을 제공합니다(각각은 Nothing을 가리킴).

선언 시 크기가 확실하지 않은 경우 다음과 같이 String 배열을 선언할 수 있습니다.

Dim myArray() as String

그런 다음 나중에 적절한 크기의 문자열 배열을 가리킬 수 있습니다.

ReDim myArray(9) as String

전체 크기를 모르고 목록을 동적으로 채워야 하는 경우 ZombieSheep은 목록을 사용하는 것이 옳습니다.VB.NET에서는 다음과 같습니다.

Dim myList as New List(Of String)
myList.Add("foo")
myList.Add("bar")

그런 다음 해당 목록에서 배열을 얻으려면 다음을 수행하십시오.

myList.ToArray()

@표시

수정해 주셔서 감사합니다.

이를 수행하는 또 다른 방법:

Dim strings() As String = {}

빈 문자열 배열인지 테스트합니다.

MessageBox.Show("count: " + strings.Count.ToString)

"개수:0".

조금 장황하지만 자체 문서화 ...

Dim strEmpty() As String = Enumerable.Empty(Of String).ToArray

왜 원하는지 모르겠지만 C# 방식은 다음과 같습니다.

string[] newArray = new string[0];

나는 VB가 이것과 크게 다르지 않을 것이라고 생각합니다.

나중에 값으로 채울 수 있도록 빈 배열을 만드는 경우 실제로 다음을 사용하는 것을 고려해야 합니다.

List<string>

그리고 그것을 배열로 변환합니다 (정말로 배열로 필요한 경우)

newListOfString.ToArray();

이 Dim Arraystr ()로 String = {}을 시도하십시오.

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