Autore Topic: Array.SortUsing() è un nuovo metodo che ordina un array in base a un altro array  (Letto 674 volte)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Un po di codice dimostrativo?  ;D
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Un po di codice dimostrativo?  ;D

.....e lo chiedi a me ?

« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 959
    • Mostra profilo
Non ho capito bene la cosa. In base a quale criterio confronta i due array per poi fare l'ordinamento? :-\
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Non ho capito bene la cosa. In base a quale criterio confronta i due array per poi fare l'ordinamento? :-\

...e lo chiedi a me ?

« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Non ho capito bene la cosa. In base a quale criterio confronta i due array per poi fare l'ordinamento? :-\

Benoit Minisini alla domanda ha così risposto:

A.SortUsing(B) ordina il vettore A utilizzando l'ordine definito nella matrice B.

Ad esempio:

A = ["A", "B", "C", "D", "E"]
B = [4, 1, 2, 10, 8]
A.SortUsing (B)

Ora A è ["B", "C", "A", "E", "D"]


Alcune osservazioni:

- Per farlo, SortUsing() crea un array intero temporaneo della stessa dimensione di A.

- Ovviamente A e B devono avere la stessa dimensione.

- A viene ordinato in base alla sostituzione generata da B.Sort().


Le mie considerazioni:
Non è che il tutto sia subito intuibile, occorre pensare a B come ad un template e quindi ad un ordine di tipo terzo, primo, secondo, quinto, quarto.
L'ordine è dato da sort su B che opererebbe spostando il 4 (cioè il primo valore) in terza posizione ( A in terza) 1 in prima (B in prima) ecc. ecc.

Provare per credere:

Codice: [Seleziona]
Public Sub Main()

  Dim A As String[] = ["A", "B", "C", "D", "E"]
  Dim B As Integer[] = [4, 1, 2, 10, 8]

  A.SortUsing(B)
  For Each s As String In A
    Print s;;
  Next
  Print

End
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 959
    • Mostra profilo
Adesso è più chiaro, resta da stabilire in quali ambiti può essere utile.
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Comunque, questo metodo avrebbe avuto maggiore senso in una matrice o in un array multidimensionale.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »