2016-05-02 14 views
-1

I verwendet, um einen für die Schleifendaten zu verschieben, nach unten durch ein in einem Array:Was ist der einfachste und effizienteste Weg, Werte in Zellen um eins in VB.net zu verschieben?

For x = 0 To (UBound(stringArray) - 1) 
      stringArray(x) = stringArray(x + 1) 

Next 

Die Daten bestehen aus Zeichenfolgen, enthält etwa 10-12 Zeichen. Ich frage mich, gibt es einen effizienteren Weg, dies zu tun, oder ist eine For-Schleife der beste Weg, um dies zu erreichen?

+0

Bitte erläutern Sie besser Ihre Frage und fügen Sie möglicherweise den Code hinzu, den Sie jetzt verwenden. – Steve

+0

Schauen Sie sich [Array.Copy] an (https://msdn.microsoft.com/en-us/library/z50k9bft (v = vs.110) .aspx) – Steve

+0

Wie viele Strings sprechen wir hier? – Steve

Antwort

0

Sie könnten Array.Copy auf diese Weise

Dim stringArray = {"1", "2", "3", "4", "5"} 
Array.Copy(stringArray, 1, stringArray, 0, stringArray.Length-1) 
-- stringArray is: 2,3,4,5,5 

verwenden, aber auf einer so kleinen Maßstab (15 Elemente) dies kaum einen Schritt lohnt sich zu nehmen.
Sie könnten Ihren tatsächlichen Code ohne wahrnehmbaren Unterschied behalten.

Oder besser, verwenden Sie das Überspringen Erweiterung für viel mehr lesbaren Code:

Dim stringArray = {"1", "2", "3", "4", "5"} 
Dim secondArray = stringArray.Skip(1) 
-- secondArray is: 2,3,4,5 

Beachten Sie auch, dass dieses letzte Beispiel mit allen ursprünglichen Elemente weniger der letzte ein neues Array erzeugt, während die Schleife oder die Das erste Beispiel ändert das ursprüngliche Array und lässt das letzte Element unverändert. Dies könnte abhängig von Ihren Einschränkungen oder nicht wünschenswert sein.

+0

Danke, das hilft. –

Verwandte Themen