2014-12-01 2 views
1

Во-первых, я просто хочу сказать, что я новичок в vb.net и просто кодирую в целом. Если возможно, наш профессор, вероятно, намеревался использовать самый простой способ. Так что, пожалуйста, не предлагайте причудливые и абстрактные методы для выполнения того, что я пытаюсь сделать. Спасибо :)размещение списка в массив?

У меня есть список. Нет определенного количества элементов. Я могу ввести столько чисел, сколько хочу И я хочу преобразовать все элементы в этом списке в массив Но, очевидно, вы не можете увидеть массив. Итак, я сделал это так, чтобы он печатался на этикетке. Но вышло только последнее число, введенное в список.

Мой код для получения ListBox в массив заключается в следующем:

Dim i As Integer 

For i = 0 To lstbxInput.Items.Count 
    dblarray(i) = CDbl(lstbxInput.Items(i)) 
Next i 

И в этом подлодки, dblarray, как двойник был использован в качестве эталонного параметра.

И распечатать массив, я использовал этот код:

Dim DblArray(lstbxInput.Items.Count - 1) As Double 

getNumbers(DblArray) 
lblLrgAns.Text = DblArray(lstbxInput.Items.Count - 1).ToString 

Я не в полной мере понять ByRef и, надеюсь, я использовал это правильный путь. Я использовал тусклый dblarray, потому что это то, что нам сказал профессор.

+0

Если вы внимательно посмотрите на код, вы должны заметить, что у вас есть цикл, чтобы установить каждый элемент массив с преобразованными значениями элементов. Итак, почему вы думаете, что для распечатки значений массива вам не нужен другой цикл для каждого элемента массива? – Steve

+0

Большое вам спасибо! – bhroask

ответ

0

на основе кода ниже, у вас есть массив (DblArray) именно то, что вы хотели

Dim DblArray(lstbxInput.Items.Count - 1) As Double 

getNumbers(DblArray) 

Теперь о вашей проблеме:

Но только последний номер, введенный в ListBox пришел вне.

Это из-за этого синтаксиса

lblLrgAns.Text = DblArray(lstbxInput.Items.Count - 1).ToString 

Вы только взять последний пункт DblArray, который DblArray(lstbxInput.Items.Count - 1). Вы должны получить DblArray(0) (первый пункт), DblArray(1) (второй элемент), DblArray(2) (третий пункт), ..., до DblArray(lstbxInput.Items.Count - 1) (последний пункт). Предполагая, что вы хотите назначить все DblArray элементов для lblLrgAns.Text через запятую, вы будете нуждаться в петлю, как показано ниже

Dim i As Integer 

For i = 0 To DblArray.Length - 1 
    lblLrgAns.Text = lblLrgAns.Text & DblArray(i).ToString 

    ' add a comma unless it's the last index 
    If (i < DblArray.Length - 1) 
     lblLrgAns.Text = lblLrgAns.Text & ", " 
    End If 
Next i 
+0

Большое вам спасибо за простой и краткий ответ! – bhroask

Смежные вопросы