public static TSource ElementAtOrDefault <TSource>(this IQueryable <TSource> source, Index index) { if (source == null) { // throw Error.ArgumentNull(nameof(source)); throw new ArgumentNullException(nameof(source)); } return(source.Provider.Execute <TSource>( Expression.Call( null, CachedReflectionInfo.ElementAtOrDefault_TSource_2(typeof(TSource)), source.Expression, Expression.Constant(index) ))); }