using System; using System.Collections; using System.Runtime.InteropServices; namespace System.Runtime.Remoting.Channels { // Token: 0x0200038E RID: 910 [ComVisible(true)] internal class AggregateDictionary : IEnumerable, ICollection, IDictionary { // Token: 0x06002526 RID: 9510 RVA: 0x0007B3A4 File Offset: 0x000795A4 public AggregateDictionary(IDictionary[] dics) { this.dictionaries = dics; } // Token: 0x06002527 RID: 9511 RVA: 0x0007B3B4 File Offset: 0x000795B4 IEnumerator IEnumerable.GetEnumerator() { return new AggregateEnumerator(this.dictionaries); } // Token: 0x170006DC RID: 1756 // (get) Token: 0x06002528 RID: 9512 RVA: 0x0007B3C4 File Offset: 0x000795C4 public bool IsFixedSize { get { return true; } } // Token: 0x170006DD RID: 1757 // (get) Token: 0x06002529 RID: 9513 RVA: 0x0007B3C8 File Offset: 0x000795C8 public bool IsReadOnly { get { return true; } } // Token: 0x170006DE RID: 1758 public object this[object key] { get { foreach (IDictionary dictionary in this.dictionaries) { if (dictionary.Contains(key)) { return dictionary[key]; } } return null; } set { throw new NotSupportedException(); } } // Token: 0x170006DF RID: 1759 // (get) Token: 0x0600252C RID: 9516 RVA: 0x0007B418 File Offset: 0x00079618 public ICollection Keys { get { if (this._keys != null) { return this._keys; } this._keys = new ArrayList(); foreach (IDictionary dictionary in this.dictionaries) { this._keys.AddRange(dictionary.Keys); } return this._keys; } } // Token: 0x170006E0 RID: 1760 // (get) Token: 0x0600252D RID: 9517 RVA: 0x0007B478 File Offset: 0x00079678 public ICollection Values { get { if (this._values != null) { return this._values; } this._values = new ArrayList(); foreach (IDictionary dictionary in this.dictionaries) { this._values.AddRange(dictionary.Values); } return this._values; } } // Token: 0x0600252E RID: 9518 RVA: 0x0007B4D8 File Offset: 0x000796D8 public void Add(object key, object value) { throw new NotSupportedException(); } // Token: 0x0600252F RID: 9519 RVA: 0x0007B4E0 File Offset: 0x000796E0 public void Clear() { throw new NotSupportedException(); } // Token: 0x06002530 RID: 9520 RVA: 0x0007B4E8 File Offset: 0x000796E8 public bool Contains(object ob) { foreach (IDictionary dictionary in this.dictionaries) { if (dictionary.Contains(ob)) { return true; } } return false; } // Token: 0x06002531 RID: 9521 RVA: 0x0007B524 File Offset: 0x00079724 public IDictionaryEnumerator GetEnumerator() { return new AggregateEnumerator(this.dictionaries); } // Token: 0x06002532 RID: 9522 RVA: 0x0007B534 File Offset: 0x00079734 public void Remove(object ob) { throw new NotSupportedException(); } // Token: 0x06002533 RID: 9523 RVA: 0x0007B53C File Offset: 0x0007973C public void CopyTo(Array array, int index) { foreach (object obj in this) { array.SetValue(obj, index++); } } // Token: 0x170006E1 RID: 1761 // (get) Token: 0x06002534 RID: 9524 RVA: 0x0007B5A8 File Offset: 0x000797A8 public int Count { get { int num = 0; foreach (IDictionary dictionary in this.dictionaries) { num += dictionary.Count; } return num; } } // Token: 0x170006E2 RID: 1762 // (get) Token: 0x06002535 RID: 9525 RVA: 0x0007B5E0 File Offset: 0x000797E0 public bool IsSynchronized { get { return false; } } // Token: 0x170006E3 RID: 1763 // (get) Token: 0x06002536 RID: 9526 RVA: 0x0007B5E4 File Offset: 0x000797E4 public object SyncRoot { get { return this; } } // Token: 0x04000E9E RID: 3742 private IDictionary[] dictionaries; // Token: 0x04000E9F RID: 3743 private ArrayList _values; // Token: 0x04000EA0 RID: 3744 private ArrayList _keys; } }