Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET -
Forum - C# / VB.NET - "array di array"

Avatar
ildany91 (Normal User)
Newbie


Messaggi: 6
Iscritto: 18/04/2016

Segnala al moderatore
Postato alle 18:45
Lunedì, 18/04/2016
Buongiorno a tutti, sto cercando di creare tipo un array di array,ovvero gli elementi contenuti nell'array (integer) dovranno essere altri array integer, tutto questo per implementare un ciclo for per modificarli tutti contemporaneamente..
ho pensato a una cosa tipo

dim a as integer ()
dim b as integer ()

dim array as integer ()

array = new integer (5) {a ,b }

c'è qualcosa di meglio?




"conosco il grande e possente Google, ma se chiedo qui è perchè non ho trovato nulla"

Ultima modifica effettuata da ildany91 il 18/04/2016 alle 18:46
PM Quote
Avatar
GN (Member)
Guru


Messaggi: 772
Iscritto: 30/04/2011

Segnala al moderatore
Postato alle 19:06
Lunedì, 18/04/2016
Si, usa degli array a più dimensioni (nel tuo caso 2 se non ho letto male).

Codice sorgente - presumibilmente VB.NET

  1. Dim array(,) As Integer = {{1, 2, 3}, {4, 5, 6}}
  2.                 For i As Integer = 0 To array.GetLength(0) - 1
  3.                 Console.WriteLine("Array " + CStr(i))
  4.                         For j As Integer = 0 To array.GetLength(1) - 1
  5.                                 Console.WriteLine(array(i,j))
  6.                         Next
  7.                 Next


Output
Codice sorgente - presumibilmente C# / VB.NET

  1. Array 0
  2. 1
  3. 2
  4. 3
  5. Array 1
  6. 4
  7. 5
  8. 6



Se vuoi maggior libertà (poter aggiungere elementi, i singoli array di lunghezza diversa) puoi usare altre strutture dati, come le liste.

PM Quote
Avatar
ildany91 (Normal User)
Newbie


Messaggi: 6
Iscritto: 18/04/2016

Segnala al moderatore
Postato alle 19:39
Lunedì, 18/04/2016
abbiamo una serie di array i cui primi due valori corrispondono alle coordinate di una grigia di label 24*24 scelti random.
Vogliamo fare un ciclo for per controllare per ogni label (che sono gia state inserite in un array bidimensionali) se il nome delle stesse a delle corrispondenze con i due valori, in caso positivo voglio cambiare il testo della label stessa...
esempio:

i nomi delle label sono r0c0, r0c1, ... r24c24

if label.name = "r" & a(0) & "c" & a(1) then
label.text = ....

ma non vogliamo doverlo scrivere per ogni a(0), a(1), b(0) etc

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 21:49
Lunedì, 18/04/2016
Mi sembra che questo problema abbia a che fare con il thread

http://www.pierotofy.it/pages/extras/forum/16/1058344-nume ...

Sbaglio ?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
torn24 (Normal User)
Pro


Messaggi: 156
Iscritto: 04/01/2008

Segnala al moderatore
Postato alle 8:19
Martedì, 19/04/2016
Non conosco vb.net, ma hai una matrice di label 24x24, ti dovrebbe servire una matrice di interi di 576 array x 2 coordinate "un po tanti" :rofl:

Scorrendo la matrice di label tramite due cicli for, puoi ricavare l'elemento coordinate dall'indice riga e indice colonna della matrice di label.

Solo per esempio, si può migliorare e non so se ci sono errori, la matematica non è il mio mestiere :rofl:



Codice sorgente - presumibilmente VB.NET

  1. dim coordinate(576,2) as integer
  2.        
  3.         Rem inizializzazione coordinate con valori casuali
  4.         ' non so se gl'indici array partano da 0 o 1 modificare
  5.         for i=0 to 23
  6.        
  7.               for j=0 to 23
  8.                
  9.                   if label(i,j).name = "r" & coordinate(((i+1)*24)-(24-j-1)-1,0) & "c" & coordinate(((i+1)*24)-(24-j-1)-1,1) then
  10.                       label(i,j).text = ....
  11.                
  12.        
  13.               next
  14.        
  15.         next




PM Quote