using System; using System.Collections.Generic; using System.Collections; public class GivenCollection : IEnumerable{ private T first, second, third; private bool firstDefined, secondDefined, thirdDefined; public GivenCollection(){ this.firstDefined = false; this.secondDefined = false; this.thirdDefined = false; } public GivenCollection(T first){ this.first = first; this.firstDefined = true; this.secondDefined = false; this.thirdDefined = false; } public GivenCollection(T first, T second){ this.first = first; this.second = second; this.firstDefined = true; this.secondDefined = true; this.thirdDefined = false; } public GivenCollection(T first, T second, T third){ this.first = first; this.second = second; this.third = third; this.firstDefined = true; this.secondDefined = true; this.thirdDefined = true; } public int Count(){ int res; if (!firstDefined) res = 0; else if (!secondDefined) res = 1; else if (!thirdDefined) res = 2; else res = 3; return res; } public IEnumerator GetEnumerator(){ if (firstDefined) yield return first; if (secondDefined) yield return second; // not else if (thirdDefined) yield return third; // not else } IEnumerator IEnumerable.GetEnumerator(){ return GetEnumerator(); } }