public IEnumerator <T> GetEnumerator() { T value; for (int i = 0, size = Size; i < size; i++) { container.TryGetValue(CoordIndexer.FromIndex(this, i), out value); yield return(value); } }
public T this[int index] { get { T value; container.TryGetValue(CoordIndexer.FromIndex(this, index), out value); return(value); } set { container[CoordIndexer.FromIndex(this, index)] = value; } }
T IDictionary <CoordIndexer, T> .this[CoordIndexer key] { get { T value; container.TryGetValue(key, out value); return(value); } set { EnsureIndexer(key); container[key] = value; } }
void EnsureIndexer(CoordIndexer indexer) { if (indexer == null) { throw new ArgumentNullException("indexer"); } if (!indexer.IsChild(this)) { throw new ArgumentException("The coord indexer instance is not initialized for this array.", "key"); } }
IEnumerator <KeyValuePair <CoordIndexer, T> > IEnumerable <KeyValuePair <CoordIndexer, T> > .GetEnumerator() { CoordIndexer idx; T value; for (int i = 0, l = Size; i < l; i++) { idx = CoordIndexer.FromIndex(this, i); container.TryGetValue(idx, out value); yield return(new KeyValuePair <CoordIndexer, T>(idx, value)); } }
bool IDictionary <CoordIndexer, T> .TryGetValue(CoordIndexer key, out T value) { EnsureIndexer(key); return(container.TryGetValue(key, out value)); }
bool IDictionary <CoordIndexer, T> .Remove(CoordIndexer key) { EnsureIndexer(key); return(container.Remove(key)); }
bool IDictionary <CoordIndexer, T> .ContainsKey(CoordIndexer key) { EnsureIndexer(key); return(container.ContainsKey(key)); }
void IDictionary <CoordIndexer, T> .Add(CoordIndexer key, T value) { EnsureIndexer(key); container.Add(key, value); }