# System.Linq ``` diff namespace System.Linq { public static class Enumerable { + public static IEnumerable> Zip(this IEnumerable first, IEnumerable second); } public class EnumerableQuery : EnumerableQuery, IEnumerable, IEnumerable, IOrderedQueryable, IOrderedQueryable, IQueryable, IQueryable, IQueryProvider { - IQueryable System.Linq.IQueryProvider.CreateQuery(Expression expression); + IQueryable System.Linq.IQueryProvider.CreateQuery(Expression expression); - S System.Linq.IQueryProvider.Execute(Expression expression); + TElement System.Linq.IQueryProvider.Execute(Expression expression); } + public static class ImmutableArrayExtensions { + public static T Aggregate(this ImmutableArray immutableArray, Func func); + public static TAccumulate Aggregate(this ImmutableArray immutableArray, TAccumulate seed, Func func); + public static TResult Aggregate(this ImmutableArray immutableArray, TAccumulate seed, Func func, Func resultSelector); + public static bool All(this ImmutableArray immutableArray, Func predicate); + public static bool Any(this ImmutableArray.Builder builder); + public static bool Any(this ImmutableArray immutableArray); + public static bool Any(this ImmutableArray immutableArray, Func predicate); + public static T ElementAt(this ImmutableArray immutableArray, int index); + public static T ElementAtOrDefault(this ImmutableArray immutableArray, int index); + public static T First(this ImmutableArray.Builder builder); + public static T First(this ImmutableArray immutableArray); + public static T First(this ImmutableArray immutableArray, Func predicate); + public static T FirstOrDefault(this ImmutableArray.Builder builder); + public static T FirstOrDefault(this ImmutableArray immutableArray); + public static T FirstOrDefault(this ImmutableArray immutableArray, Func predicate); + public static T Last(this ImmutableArray.Builder builder); + public static T Last(this ImmutableArray immutableArray); + public static T Last(this ImmutableArray immutableArray, Func predicate); + public static T LastOrDefault(this ImmutableArray.Builder builder); + public static T LastOrDefault(this ImmutableArray immutableArray); + public static T LastOrDefault(this ImmutableArray immutableArray, Func predicate); + public static IEnumerable Select(this ImmutableArray immutableArray, Func selector); + public static IEnumerable SelectMany(this ImmutableArray immutableArray, Func> collectionSelector, Func resultSelector); + public static bool SequenceEqual(this ImmutableArray immutableArray, IEnumerable items, IEqualityComparer comparer = null) where TDerived : TBase; + public static bool SequenceEqual(this ImmutableArray immutableArray, ImmutableArray items, IEqualityComparer comparer = null) where TDerived : TBase; + public static bool SequenceEqual(this ImmutableArray immutableArray, ImmutableArray items, Func predicate) where TDerived : TBase; + public static T Single(this ImmutableArray immutableArray); + public static T Single(this ImmutableArray immutableArray, Func predicate); + public static T SingleOrDefault(this ImmutableArray immutableArray); + public static T SingleOrDefault(this ImmutableArray immutableArray, Func predicate); + public static T[] ToArray(this ImmutableArray immutableArray); + public static Dictionary ToDictionary(this ImmutableArray immutableArray, Func keySelector); + public static Dictionary ToDictionary(this ImmutableArray immutableArray, Func keySelector, IEqualityComparer comparer); + public static Dictionary ToDictionary(this ImmutableArray immutableArray, Func keySelector, Func elementSelector); + public static Dictionary ToDictionary(this ImmutableArray immutableArray, Func keySelector, Func elementSelector, IEqualityComparer comparer); + public static IEnumerable Where(this ImmutableArray immutableArray, Func predicate); + } public static class Queryable { + public static IQueryable> Zip(this IQueryable source1, IEnumerable source2); } } ```