2010-02-23 11 views
7

क्या किसी भी संख्या में किसी सरणी के प्रत्येक सदस्य को गुणा करने का एक अंतर्निहित तरीका है?वीबीएनईटी ऐरे अंकगणित

उदाहरण:

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 फ्रेमवर्क का कौन सा संस्करण आप उपयोग कर रहे हैं? – Andrew

उत्तर

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

@ स्टेवेन, आप चर वोल्टेज की घोषणा कैसे कर रहे हैं में थोड़ी सी त्रुटि है। आपको स्पष्ट आकार 4 को हटाने की आवश्यकता है – JaredPar

0

मुझे नहीं लगता कि वहाँ यह करने के लिए रास्ते में एक का निर्माण किया है, लेकिन सबसे अच्छी बात मुझे लगता है कि हो सकता है ऐसा करने के लिए बस अपनी स्वयं की विधि बनाने के लिए किया जाएगा ।

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

Return voltArray() 
End Function 

की तरह कुछ तो बस करना वोल्ट = convertMilliamps (वोल्ट)

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