Sempre Array

Per rimanere in tema con il mio precedente post , dovevo fare il sort degli array che avevo creato per la mia applicazione.Ho provato un pò con il metodo sort nativo degli array del framework ma non sono riuscito a farlo funzionare.Credo che debba approfondire in merito ; nell'array avevo salvato una collection di oggetti da me creati che avevano comunque un identità sortabile(si dirà così?).Bah...non ho trovato niente di meglio che ripescare nei miei ricordi di studio e fare un bel bubble sort ( gli oggetti non sono molti , al massimo 30).

   Public Sub Sort()
'Metodo di ordinamento degli oggetti SSD
        
Dim MyVCounter As Integer
        Dim 
Swapped As Boolean True
        Dim 
tmp As SSDAmbiti
        
While Swapped
            Swapped = 
False
            For 
MyVCounter = 1 To _SizeSSd - 1
                
If _ArraySSD(MyVCounter).NomeSSD < _ArraySSD(MyVCounter - 1).NomeSSD Then
                    
tmp = _ArraySSD(MyVCounter)
                    _ArraySSD(MyVCounter) = _ArraySSD(MyVCounter - 1)
                    _ArraySSD(MyVCounter - 1) = tmp
                    Swapped = 
True
                End If
            Next
        End While

    End Sub

powered by IMHO 1.2

Array in Net

Per non perder l'abitudine ad usare il mio blog come bloG-notes memorizzo questa funzione che mi è servita per fare la copia di un intero archivio..(in attesa che imparo le mostruose funzionalità offerte da XML in Net).

'array bidimensionale , che ha come prima dimensione il numero di righe del dataset
Dim __MyArray as Array Array.CreateInstance(GetType(Integer), MyDataSet.Tables("Data").Rows.Count, 1)
'per scorrere l'insieme posso usare il metodo For Each (Integer) in __Myarray oppure
   
Public Function RetrieveNewId(ByVal IdOld As IntegerByVal IdArray(,) As IntegerAs Integer
        
'Questa funzione estrae il valore della seconda dimensione dell'array
        'In Input passo il valore della prima dimensione da cercare.
        'presuppongo che inserisco nel primo livello solo la IdOld e nel secondo livello la newid
        'es. 
        'myarray(0, 0) = 2048 (old)
        'myarray(0, 1) = 334  (new)
        'myarray(1, 0) = 2356 (old) 
        'myarray(1, 1) = 230  (new) 
        'MsgBox(RetrieveNewId(2048, myarray))

        
Dim MyVCounterPrimoLivello, MyVCounterSecondoLivello As Integer
        Dim 
As Integer = IdArray.GetLowerBound(0), j As Integer = IdArray.GetLength(1)
        
For MyVCounterPrimoLivello = IdArray.GetLowerBound(0) To IdArray.GetUpperBound(0)
            
For MyVCounterSecondoLivello = IdArray.GetLowerBound(1) To IdArray.GetUpperBound(1)
                
If IdArray.GetValue(MyVCounterPrimoLivello, MyVCounterSecondoLivello) = IdOld Then
                    
'se lo trovo prendo il secondo livello
                    
Return IdArray.GetValue(MyVCounterPrimoLivello, MyVCounterSecondoLivello + 1)
                
End If
            Next
        Next
    End Function

Spero non vi mettiate a ridere, ma pian piano cerco di affinare le tecniche anche grazie ai preziosi consigli

dei bloggers di UgiDotnet.

P.S. Non me ne vogliano gli altri ma i  miei preferiti sono Andrea Lorenzo.

powered by IMHO 1.2

«marzo»
domlunmarmergiovensab
272812345
6789101112
13141516171819
20212223242526
272829303112
3456789