La domanda sembra semplice. Anche se il documentation dice che fa:Does `Dizionario <TKey, TValue> .KeyCollection` implementa` IReadOnlyCollection` o no?
public sealed class KeyCollection : ICollection<TKey>,
IReadOnlyCollection<TKey>, IEnumerable<TKey>, ICollection, IEnumerable
il seguente codice dà un errore:
class MyKeys<T>
{
readonly Dictionary<T, T> dict = new Dictionary<T, T>();
public IReadOnlyCollection<T> Keys { get { return dict.Keys; } set; }
}
dicendo che non v'è alcuna conversione KeyCollection<T>
-IReadOnlyCollection<T>
.
Inoltre polish documentation (francese anche per questo) dice che non lo fa:
[SerializableAttribute]
public sealed class KeyCollection : ICollection<TKey>,
IEnumerable<TKey>, ICollection, IEnumerable
Che è?
E nel caso in cui è l'errore nella documentazione inglese, una domanda bonus:
C'è un modo per ottenere Keys
in sola lettura collezione?
Anche se non implementa '' IReadOnlyCollection si legge solo in quel 'IsReadOnly' restituisce true e 'Aggiungi',' Rimuovi' e 'Cancella' generano tutte le eccezioni. –
juharr