C# Matrici , Array Dinamici

nUmErO

Utente Silver
29 Maggio 2017
66
19
8
55
Ultima modifica:
Salve sono nuovo della programmazione sul linguaggio c# quindi ho alcune lacune :kra: , avrei questo problema vorrei avere una struttura di dati quanto segue in modo dinamico cioè che è possibile aggiungere ed eliminare dato come una List

int ID tipo array dinamico come una List
int STATO tipo array dinamico come una List
int TEMPO tipo array dinamico come una List
string CODICE tipo array dinamico come una List
int PESI tipo matrice dinamico come una List

magari non so se si puoi fare contenuto in una struttura dati tipo struct o simile esempio

struct Processo
{

int ID tipo array dinamico come una List
int STATO tipo array dinamico come una List
int TEMPO tipo array dinamico come una List
string CODICE tipo array dinamico come una List
int PESI tipo matrice dinamico come una List

}

come posso fare questo tradotto in codice ho provato ma mi dice che non e possibile metterlo in una struct . grazie attendo con ansia la risposta :D
Messaggio unito automaticamente:

up
 
il problema è questo non so come farlo in modo dinamico ma solo statico :(
1111.png
 
Ultima modifica:
Il tipo parametrico List da te citato permette l'aggiunta e la rimozione di elementi di tipo T. Per cui il suo utlizzo risolve il tuo problema. Per quanto riguarda quello screen il problema è che non puoi istanziare dentro una struct(a meno che tu non lo faccia attraverso un costruttore parametrizzato).

Nota aggiuntiva: l'implementazione della struttura dati da te citata inizialmente(che penso sia quella di un "processo") non è ben pensata, ti costringe a complicare l'invariante di rappresentazione di quella quintupla vincolando gli indici e le dimensioni.
 
una specie di processo come faccio a fare istanziare attraverso un costruttore parametrizzato puoi farmi un esempio perché adesso mi da errore con list su come istaziare un matrice list e array nella struct ? grazie in anticipo
 
Ti avevo risposto con il link alla documentazione, nella quale sono citati parecchi esempi. Comunque, dato che non sei stato in grado di trovarli ti faccio un esempio di struttura dati con costruttore.

Parametrica:
C#:
struct listExample<T> {
    private List<T> myList; 
 
    public listExample(List<T> myList) {
        this.myList = myList;
    }
 
    //Getters and setters implementation.
}

Non parametrica:
C#:
struct listExample {
    private List<string> myList; 
 
    public listExample(List<string> myList) {
        this.myList = myList;
    }
 
    //Getters and setters implementation.
}
 
grazie hahah si sono abbastanza imbranato a leggere le documentazioni e non so dove mettere le mani grazie per la pazienza hahah cmq per la matrice la procedura e lo stessa ? vero
 
Ultima modifica:
Vedendo che hai usato le struct, immagino tu sia pratico di C.
In questo caso (partendo da C) è possibile ottenere una lista definendo una struct con:
  • Campo valore
  • Campo puntatore all'elemento della lista successiva
Ovviamente avrai un array contenente elementi con quella struttura come tipo.

C:
struct ElementoLista
{
    char* nome;
    char* successivo;
}

Ovvio che poi puoi implementare altre funzionalità in base alle tue necessità.
Però, visto che stai usando C#, che al contrario di C è decisamente più alto, puoi usare direttamente List<T> e sostituire T con il tipo di tua necessità, evitando casini inutili.

Non ho mai visto l'uso di struct in C# e ci lavoro sopra da 3 anni hahah. Impara bene cosa sono e come funzionano le classi, eredità, polimorfismo e incapsulamento. Poi dovresti essere a posto
 
Non è che si usano le classi perchè sono "belle", ci sono dei pro e dei contro che variano al variare del contesto. Dovresti argomentare un minimo la risposta.


*ereditarietà, non eredità.
Beh per un linguaggio come c# penso sia scontato l'uso delle classi e di tutto ciò che ne deriva. Infatti il mio "sono più belle" era riferito a ciò.
Messaggio unito automaticamente:

grazie a tutti per l'aiuto ragazzi molto utili :D
Di nulla ;)
 
Beh per un linguaggio come c# penso sia scontato l'uso delle classi e di tutto ciò che ne deriva. Infatti il mio "sono più belle" era riferito a ciò.

Non è scontato, come ho già detto la preferenza di una classe ad una struct varia al variare del contesto. Per esempio è di gran lunga preferibile usare una struct al posto di una classe nei casi in cui si vogliono definire tipi piccoli(in dimensione) e short-lived(in quanto non si l'overhead creazionale generato dalla new e neanche il cosiddetto strong coupling tra la classe che istanzia e la classe istanziata, che dovrebbe poi essere rimosso attraverso una factory e creare quindi altro overhead).