04/02/17 13:41
kenton
Ciao,
nel creare la seguente struttura per i dati ho degli errori.
E' una 'sortedlist' di una 'sortedlist' di una 'list' di una classe 'attivita' da me definita.
Per rendere agevole lettura e scrittura voglio mettere degli indicizzatori
in modo da accedere come fosse una matrice con le parentesi quadre,
agli oggetti interni.
Esempio:
(so che mancano ancora tutti i controlli ai metodi per verificare l'esistenza o meno degli oggetti in lettura e scrittura)
Ho questo errore (in 4 punti, rige 36 40 59 63):
Errore CS0029 Non è possibile convertire in modo implicito il tipo
'System.Collections.Generic.SortedList<string, Estrazione_Excel01.listAttivita>'
in
'System.Collections.Generic.SortedList<string, System.Collections.Generic.SortedList<string, Estrazione_Excel01.listAttivita>>'
Cosa non ho capito ?
nel creare la seguente struttura per i dati ho degli errori.
E' una 'sortedlist' di una 'sortedlist' di una 'list' di una classe 'attivita' da me definita.
Per rendere agevole lettura e scrittura voglio mettere degli indicizzatori
in modo da accedere come fosse una matrice con le parentesi quadre,
agli oggetti interni.
Esempio:
var matrice = new matrAttivita(); //inserire così matrice["1A"]["John"] = {"math","3cat",30,""}; //leggere così string materia = matrice["1A"]["John"][0].materia; //e leggere anche così string materia = matrice[0][0][0].materia; //(override sui tipi?)
(so che mancano ancora tutti i controlli ai metodi per verificare l'esistenza o meno degli oggetti in lettura e scrittura)
Ho questo errore (in 4 punti, rige 36 40 59 63):
Errore CS0029 Non è possibile convertire in modo implicito il tipo
'System.Collections.Generic.SortedList<string, Estrazione_Excel01.listAttivita>'
in
'System.Collections.Generic.SortedList<string, System.Collections.Generic.SortedList<string, Estrazione_Excel01.listAttivita>>'
Cosa non ho capito ?
public class matrAttivita { private SortedList<string, SortedList<string, listAttivita>> _Inner = new SortedList<string, SortedList<string, listAttivita>>(); public void Add(string corso, string insegnante, string materia, string ufc, ushort ore, string aulaLabo) { if(!_Inner.ContainsKey(corso)) _Inner.Add(corso, null); if (!_Inner[corso].ContainsKey(insegnante)) _Inner[corso].Add(insegnante, null); var last = _Inner[corso][insegnante].listAtt.Last(); foreach (Attivita att in _Inner[corso][insegnante].listAtt) { if (att.materia == materia) { //errore materia già presente break; } else { if (att.Equals(last)) _Inner[corso][insegnante].Add(materia, ufc, ore, aulaLabo); } } } public SortedList<string, SortedList<string, listAttivita>> this[int i] { get { return _Inner.Values[i]; //<- errore } set { _Inner.Values[i] = value; //<- errore } } } public class vectAttivita { public SortedList<string, listAttivita> _Inner = new SortedList<string, listAttivita>(); public void Add(string key) { _Inner.Add(key, null); } public SortedList<string, listAttivita> this[int i] { get { return _Inner.Values[i]; //<- errore } set { _Inner.Values[i] = value; //<- errore } } } public class listAttivita { public void Add(string materia, string ufc, ushort ore, string aulaLabo) { listAtt.Add(new Attivita(materia, ufc, ore, aulaLabo)); } public void Add(Attivita att) { listAtt.Add(att); } public List<Attivita> this[int i] { get { return listAtt; } set { listAtt = value; } } } public class Attivita { public string materia; public string ufc; public ushort ore; public string aulaLab; public Attivita(string materia, string ufc, ushort ore, string aulaLabo) { this.materia = materia; this.ufc = ufc; this.ore = ore; this.aulaLab = aulaLabo; } }
Ultima modifica effettuata da kenton 04/02/17 18:08
aaa