2010-02-23 16 views
7

Dizinin her üyesini yerinde bir sayıyla çarpmak için yerleşik bir yol var mı?VB.NET Dizi Aritmetik

Örnek:

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 
+0

.net framework'ün hangi sürümünü kullanıyorsunuz? – Andrew

cevap

9

Sen Array.ConvertAll yöntemi kullanabilirsiniz.

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

DÜZENLEME

derlemek için yukarıdaki düzeltilmesi gereken bir örnek kod küçük bir hata vardır.

Dim volts() As Double = {1.243, 0.534, 5.343, 2.223, 4.334} 
+0

@Steven, değişken voltları nasıl beyan ettiğiniz konusunda ufak bir hata var. Açık boyutu 4 kaldırmanız gerekiyor – JaredPar

0

Ben bunu yapmanın şekilde inşa olduğunu sanmıyorum, ama yapacak Bence en iyi şey sadece kendi yöntemini oluşturmak olacaktır değişken türünden açık boyutu (4) çıkarın .

Public Function convertMilliamps(ByVal voltArray() As Double) 
    For Each item AS Double In voltArray 
     item = item * 1000 
    Next 

Return voltArray() 
End Function 

gibi bir şey o zaman sadece do volt = convertMilliamps (volt)

0

bir öğe diziden değerinin bir kopyası değil, asıl öğe olduğu için fonksiyon her bir öğe için çalışmaz. Bu çalışma:

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