【问题标题】:putting a list into an array?将列表放入数组中?
【发布时间】:2014-12-01 21:36:43
【问题描述】:

首先,我只想说我是 vb.net 的初学者,只是一般的编码。 如果可能的话,我们的教授可能打算让我们使用最简单的方法 所以请不要建议花哨和抽象的方法来做我想做的事情。 谢谢你:)

所以我有一个列表框。没有固定数量的项目。 我可以输入任意数量的数字 我想将该列表框中的所有项目转换为一个数组 但显然,您看不到数组。 所以我做了它,以便它在标签中打印出来。 但是只有最后一个输入到列表框中的数字出来了。

我将列表框放入数组的代码如下:

Dim i As Integer

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

而在这个 sub 中,dblarray as double 被用作参考参数。

为了打印出数组,我使用了以下代码:

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

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

我并不完全理解 Byref,希望我以正确的方式使用它。 我在那里调暗了 dblarray,因为这是教授告诉我们要做的。

【问题讨论】:

  • 如果您仔细查看您的代码,您应该注意到您有一个循环来使用转换后的项目值设置数组的每个元素。那么,为什么你认为打印出数组的值不需要在数组的每个元素上再循环一次呢?

标签: arrays vb.net listbox


【解决方案1】:

根据您下面的代码,您已经得到了您想要的数组 (DblArray)

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

getNumbers(DblArray)

现在关于您的问题:

但是只有最后一个输入到列表框中的数字出来了。

因为这个语法

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

【讨论】:

  • 非常感谢您简洁明了的回答!
猜你喜欢
  • 1970-01-01
  • 2021-09-23
  • 2020-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多