namespace Rubrica_Miglioria; class Rubrica { Voce[] vocidellarubrica; public Rubrica(int p_dimensione) { this.vocidellarubrica = new Voce[p_dimensione]; } public void Setvocidellarubrica(Voce[] p_vocidellarubrica) { this.vocidellarubrica = p_vocidellarubrica; } public Voce[] GetVocidellarubrica() { return this.vocidellarubrica; } public void AddVocidellarubrica(Voce p_nuovaVoce) { Voce[] oldRubrica = this.vocidellarubrica; Voce[] newRubrica = new Voce[oldRubrica.Length + 1]; Array.Copy(oldRubrica, newRubrica, oldRubrica.Length); newRubrica[oldRubrica.Length] = p_nuovaVoce; this.vocidellarubrica = newRubrica; } public string Ricerca(string p_ricerca, bool p_tipologia, int p_contatore) { /* p_tipologia=true -> ricerca esatta p_tipologia=false -> ricerca non esatta */ bool notFound = true; int i = 0; for (; i < p_contatore && notFound; i++) { notFound = !(p_tipologia ? p_ricerca == this.vocidellarubrica[i].GetNome() : this.vocidellarubrica[i].GetNome().StartsWith(p_ricerca)); } return !notFound ? $"Voce trovata:\nNome: {this.vocidellarubrica[i].GetNome()}\nNumero di telefono: {this.vocidellarubrica[i].Getnumeroditelefono()}" : $"Il nome {p_ricerca} non รจ stato trovato nella rubrica."; } public void StampaRubricaCompleta(int p_contatore) { for (int i = 0; i < p_contatore; i++) { Console.WriteLine($"Nome: {this.vocidellarubrica[i].GetNome()}"); Console.WriteLine($"Numero di telefono: {this.vocidellarubrica[i].Getnumeroditelefono()}"); Console.WriteLine(); } } }