Sola lettura lista di stringhe
-
23-08-2019 - |
Domanda
E 'buono da utilizzare tale approccio per mantenere sola lettura lista di stringhe, per esempio, un elenco di campi in ADO.NET.
var list = new System.Collections.ObjectModel.ReadOnlyCollection<string>(
new List<string>(4) { "type", "currency", "date", "amount" });
O questa è una soluzione superfluo?
Soluzione
Dipende dalla vostra posizione. ReadOnlyCollection
funziona molto bene quando si dispone di un elenco modificabile interna che deve essere dato a qualche altro codice che non è consentito modificare l'elenco. Per il codice semplice, utilizzando ReadOnlyCollection
è probabilmente eccessivo. Se il codice è grande e c'è un rischio qualche altro programmatore (o, in fondo alla strada) potrebbe accidentalmente tentare di modificare l'elenco, allora potrebbe essere la pena.
In breve:. Non utilizzare ReadOnlyCollection
idiomaticamente, usarlo quando ha senso
Altri suggerimenti
Se possibile, preferiscono controllo di tipo statico. IEnumerable<string>
è di sola lettura.
IEnumerable<string> list = new List<string> { "type", "currency", "date", "amount" };
codice successivo non può modificare l'elenco, e gli errori saranno catturati al momento della compilazione -. A meno di utilizzare la riflessione, ma poi di riflessione potrebbe essere utilizzato per eludere i controlli di runtime e
Tornando alla NET 2.0, la classe List aveva un metodo AsReadOnly()
. Quando farmaci generici è arrivato, il List<T>
ottenuto troppo. Ecco il MSDN pagina di riferimento .