123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.Text;
- using IEnumerable=System.Collections.IEnumerable;
- namespace Google.ProtocolBuffers.Collections {
- /// <summary>
- /// Read-only wrapper around another dictionary.
- /// </summary>
- public class ReadOnlyDictionary<TKey, TValue> : IDictionary<TKey, TValue> {
- readonly IDictionary<TKey, TValue> wrapped;
- public ReadOnlyDictionary(IDictionary<TKey, TValue> wrapped) {
- this.wrapped = wrapped;
- }
- public void Add(TKey key, TValue value) {
- throw new InvalidOperationException();
- }
- public bool ContainsKey(TKey key) {
- return wrapped.ContainsKey(key);
- }
- public ICollection<TKey> Keys {
- get { return wrapped.Keys; }
- }
- public bool Remove(TKey key) {
- throw new InvalidOperationException();
- }
- public bool TryGetValue(TKey key, out TValue value) {
- return wrapped.TryGetValue(key, out value);
- }
- public ICollection<TValue> Values {
- get { return wrapped.Values; }
- }
- public TValue this[TKey key] {
- get {
- return wrapped[key];
- }
- set {
- throw new InvalidOperationException();
- }
- }
- public void Add(KeyValuePair<TKey, TValue> item) {
- throw new InvalidOperationException();
- }
- public void Clear() {
- throw new InvalidOperationException();
- }
- public bool Contains(KeyValuePair<TKey, TValue> item) {
- return wrapped.Contains(item);
- }
- public void CopyTo(KeyValuePair<TKey, TValue>[] array, int arrayIndex) {
- wrapped.CopyTo(array, arrayIndex);
- }
- public int Count {
- get { return wrapped.Count; }
- }
- public bool IsReadOnly {
- get { return true; }
- }
- public bool Remove(KeyValuePair<TKey, TValue> item) {
- throw new InvalidOperationException();
- }
- public IEnumerator<KeyValuePair<TKey, TValue>> GetEnumerator() {
- return wrapped.GetEnumerator();
- }
- IEnumerator IEnumerable.GetEnumerator() {
- return ((IEnumerable) wrapped).GetEnumerator();
- }
- public override bool Equals(object obj) {
- return wrapped.Equals(obj);
- }
- public override int GetHashCode() {
- return wrapped.GetHashCode();
- }
- public override string ToString() {
- return wrapped.ToString();
- }
- }
- }
|