Exemplo n.º 1
0
        public RangeEnumerator([NotNull] IEnumerable <T> enumerable)
        {
            bool assigned = false;

            if (enumerable is IList <T> sourceList)
            {
                if (sourceList.Count > 0)
                {
                    Minimum  = sourceList[0];
                    Maximum  = sourceList[sourceList.Count - 1];
                    assigned = true;
                }
            }
            else
            {
                using (IEnumerator <T> enumerator = enumerable.GetEnumerator())
                {
                    if (enumerator.MoveNext())
                    {
                        Minimum = enumerator.Current;

                        do
                        {
                            Maximum = enumerator.Current;
                        }while (enumerator.MoveNext());

                        assigned = true;
                    }
                }
            }

            if (!assigned)
            {
                Minimum    = Maximum = default(T);
                IsIterable = false;
            }
            else
            {
                IsIterable = Minimum.IsLessThanOrEqual(Maximum);
            }
        }
Exemplo n.º 2
0
 public RangeLister(T minimum, T maximum)
 {
     Minimum    = minimum;
     Maximum    = maximum;
     IsIterable = Minimum.IsLessThanOrEqual(Maximum);
 }