#if FAT using System; using System.Collections.Generic; using LinqInternal.Core; namespace LinqInternal.Collections { [System.Diagnostics.DebuggerNonUserCode] internal class ConversionSet : ProgressiveSet { public ConversionSet(IEnumerable wrapped, Func converter) : base(BuildEnumerable(wrapped, converter)) { //Empty } public ConversionSet(IEnumerable wrapped, Func converter, Predicate filter) : base(BuildEnumerable(wrapped, converter, filter)) { //Empty } private static IEnumerable BuildEnumerable(IEnumerable wrapped, Func converter) { if (wrapped == null) { throw new ArgumentNullException("wrapped"); } if (converter == null) { throw new ArgumentNullException("converter"); } foreach (var item in wrapped) { yield return converter(item); } } private static IEnumerable BuildEnumerable(IEnumerable wrapped, Func converter, Predicate filter) { if (wrapped == null) { throw new ArgumentNullException("wrapped"); } if (converter == null) { throw new ArgumentNullException("converter"); } if (filter == null) { throw new ArgumentNullException("filter"); } foreach (var item in wrapped) { if (filter(item)) { yield return converter(item); } } } } } #endif