Die Frage scheint einfach. Obwohl die documentation sagt, es tut:Funktioniert `Dictionary <TKey, TValue> .KeyCollection`` IReadOnlyCollection` oder nicht?
public sealed class KeyCollection : ICollection<TKey>,
IReadOnlyCollection<TKey>, IEnumerable<TKey>, ICollection, IEnumerable
der folgende Code einen Fehler gibt:
class MyKeys<T>
{
readonly Dictionary<T, T> dict = new Dictionary<T, T>();
public IReadOnlyCollection<T> Keys { get { return dict.Keys; } set; }
}
sagen, dass es keine Umwandlung KeyCollection<T>
-IReadOnlyCollection<T>
ist.
Außerdem polish documentation (französisch auch für diese Angelegenheit), sagt es nicht:
[SerializableAttribute]
public sealed class KeyCollection : ICollection<TKey>,
IEnumerable<TKey>, ICollection, IEnumerable
Welche ist es?
Und für den Fall ist es der Fehler in Englisch Dokumentation, eine Bonus-Frage:
Gibt es eine Möglichkeit Keys
als Nur-Lese-Sammlung zu bekommen?
Während es nicht implementiert 'IReadOnlyCollection' es, dass nur gelesen wird 'IsReadOnly' gibt true zurück, und 'Add',' Remove' und 'Clear' alle werfen Ausnahmen. –
juharr