VB.NET数组算术

时间:2010-02-23 16:40:14

标签: .net vb.net arrays

是否有内置的方法将数组的每个成员乘以一些数字?

示例:

Dim volts () as Double = {1.243, 0.534, 5.343, 2.223, 4.334}
Dim millivolts (4) as Double = volts.MultiplyEachBy(1000) 'something like this

3 个答案:

答案 0 :(得分:9)

您可以使用Array.ConvertAll方法。

Array.ConvertAll(volts, Function(x) x * 1000)

修改

示例代码中存在一个小错误,需要针对以上内容进行更正才能进行编译。从变量类型

中删除显式大小(4)
Dim volts() As Double = {1.243, 0.534, 5.343, 2.223, 4.334}

答案 1 :(得分:0)

我认为没有内置的方法可以做到这一点,但我能想到的最好的事情就是创建自己的方法。像

这样的东西
Public Function convertMilliamps(ByVal voltArray() As Double)
    For Each item AS Double In voltArray
        item = item * 1000 
    Next

Return voltArray()
End Function

然后只做伏特= convertMilliamps(伏特)

答案 2 :(得分:0)

您的功能对每个项目都不起作用,因为项目是值的副本,而不是数组中的实际项目。这应该有效:

Public Function MultiplyArrayByScalar(ByRef arry As Double(), ByVal scaler As Double) As Double()

    Dim newArry As Double()
    Dim size As Integer = arry.GetLength(0)
    ReDim newArry(size - 1)
    Dim i As Integer
    For i = 0 To size - 1
        newArry(i) = arry(i) * scaler
    Next

    Return newArry
End Function