Torna al Thread
public class Commenti
{
private int Riga = 0;
private string Testo = string.Empty;
//Inizializza un oggetto Commenti
public Commenti()
{
this.Riga = 0;
this.Testo = string.Empty;
}
//Inizializza un oggetto Commenti con i parametri Riga e Testo
public Commenti(int _Riga, string _Testo)
{
this.Riga = _Riga;
this.Testo = _Testo;
}
//Recupera il valore della Riga del commento
public int getRiga()
{
return this.Riga;
}
//Imposta la Riga o modifica la riga del commento
public void setRiga(int newRiga)
{
this.Riga = newRiga;
}
//Recupera il valore del Testo del commento
public string getTesto()
{
return this.Testo;
}
//Imposta il testo o modifica il testo del commento
public void setTesto(string newTesto)
{
this.Testo = newTesto;
}
//Funzione che restituisce una stringa di questo tipo :
// "Riga = 0 Testo = Hello Word!"
public string ToString()
{
return (" Riga = " + this.Riga + " Testo = " + this.Testo );
}
//Verifica se i due oggetti sono Uguali , precisamente solo il testo verifica dei commenti
//Questa funzione server per verificare se due Commenti hanno il testo uguale
public bool Equals(object o)
{
Commenti verifica = (Commenti)o;
if (this.Testo.Equals(verifica.Testo) == true)
{
return true;
}
else
{
return false;
}
}
}
public class Doc
{
private List<Commenti> Comm;
// Inizializzo la lista vuota dei commenti
public Doc()
{
this.Comm = new List<Commenti>();
}
//Inizializza la lista commenti con un oggetto Commenti specificato
public Doc(Commenti newCommento)
{
this.Comm = new List<Commenti>();
//Aggiungo l'elemento alla lista
this.Comm.Add(newCommento);
}
//Inserisco nella lista dei commenti un nuovo Testo e lui lo
//inserisce e poi incrementa la riga di quel determinato commento
public void InserisciTestoCommento(String TestoCommento)
{
Commenti newCommento = new Commenti();
newCommento.setTesto(TestoCommento);
if (this.Comm != null)
{
this.Comm.Add(newCommento);
this.Comm[this.Comm.Count - 1].setRiga(this.Comm.Count - 1);
}
else {
this.Comm = new List<Commenti>();
this.Comm.Add(newCommento);
}
}
// Regupera il testo di un determinato Commenti che si trova in una determinata posizione
public String getTestoCommento_Index(int posizioneLista)
{
String valore = String.Empty;
if (posizioneLista < this.Comm.Count) {
valore = this.Comm[posizioneLista].getTesto();
}
return valore;
}
//Funzione che permette di ricuperare solo i Testi dei commenti e inseriri in una lista
// di stringhe , rispettando come l'ordine gli indici della lista dei commenti
public List<String> getCommenti_ToListString()
{
List<String> arrayStringCommenti = new List<String>();
foreach (Commenti commentoTesto in this.Comm)
{
String TestoCommento = string.Empty;
TestoCommento = commentoTesto.getTesto();
arrayStringCommenti.Add(TestoCommento);
}
return arrayStringCommenti;
}
//Recuperi la lista commenti
public List<Commenti> getListCommenti()
{
return this.Comm;
}
//Nuomero di quanti elementi sono stati inseriti
public int getCountListCommenti()
{
return this.Comm.Count - 1;
}
/// <summary>
/// Eliminare elemento nella posizione passata
/// Esempio EliminaCommento_Index(0) elimina l'elemento che si trova alla posizione 0 della lista
/// Esempio EliminaCommento_Index(3) elimina l'elemento che si trova alla posizione 3 della lista
/// Ricordate che il 3 non significa il Terzo elemento ma bensi il 4 elemento perché si parte da 0,1,2,3 .
/// Per chi invece vuole utilizzare il classico metodo ho messo una variabile boolean che serve per attivare
/// Se si vuole eliminare il primo elemento basta scrivere
/// Esempio EliminaCommento_Index(1,true) elimina l'elemento che si trova alla posizione 0 o prima posizione della lista
/// Esempio EliminaCommento_Index(2,true) elimina l'elemento che si trova alla posizione 1 o seconda posizione della lista
/// </summary>
/// <param name="posizioneEliminare">Indice della posizione da eliminare esempio 0, 1, 2,3</param>
/// <param name="VersioneEliminazione">True - Significa che vengolo eliminati in base a numeri normali 1 - 2 - 3 non parte da 0, False - Viene utilizzato il contatore che parte da 0,1,2,3,ec..</param>
public void EliminaCommento_Index(int posizioneEliminare, bool VersioneEliminazione = false)
{
if (this.Comm != null) {
if ((posizioneEliminare < this.Comm.Count) && (posizioneEliminare >=0))
{
if (VersioneEliminazione == true)
{
if (posizioneEliminare <= 1)
{
this.Comm.RemoveAt(0);
}
else
{
this.Comm.RemoveAt(posizioneEliminare - 1);
}
}
else
{
if (posizioneEliminare <= 0)
{
this.Comm.RemoveAt(0);
}
else
{
this.Comm.RemoveAt(posizioneEliminare);
}
}
}
}
}
//Resetta / Cancella tutta la lista dei commenti
public void Empty()
{
this.Comm.Clear();
}
}