using System.Collections; using System.Collections.Generic; using System.IO; using System.Linq; namespace OpenVIII.Fields { public class Gateways : IEnumerable, IReadOnlyList { #region Fields private List gateways; #endregion Fields #region Constructors public Gateways() => this.gateways = new List(12); #endregion Constructors #region Properties public int Count => ((IReadOnlyList)gateways).Count; #endregion Properties #region Indexers public Gateway this[int index] => ((IReadOnlyList)gateways)[index]; #endregion Indexers #region Methods public static Gateways Read(BinaryReader br, int type) { var g = new Gateways(); foreach (var i in Enumerable.Range(0, g.gateways.Capacity)) g.gateways.Add(Gateway.Read(br, type)); return g; } public IEnumerator GetEnumerator() => ((IEnumerable)gateways).GetEnumerator(); IEnumerator IEnumerable.GetEnumerator() => ((IEnumerable)gateways).GetEnumerator(); #endregion Methods } }