public TF FirstOrDefault <TF>(Func <TF, bool> predicate)
        {
            var inner = Transformed.OfType <TF>().FirstOrDefault(predicate);

            if (inner != null)
            {
                return(inner);
            }
            return(_extendedSet.FirstOrDefault(predicate));
        }
 public IEnumerable <TO> OfType <TO>()
 {
     return(_extendedSet.OfType <TO>().Concat(Transformed.OfType <TO>()));
 }
 public IEnumerable <TW> Where <TW>(Func <TW, bool> predicate)
 {
     return(Transformed.OfType <TW>().Where(predicate).Concat(_extendedSet.Where(predicate)));
 }