title: Why is the 2-argument overload of Enumerable.Zip() in .NET Core but not in .NET Standard?
body: <p>I create a new project in my Visual Studio of type class library, .NET Core, C# and paste in this code:</p>
  
  <pre><code>using System;
  using System.Collections.Generic;
  using System.Linq;
  
  namespace MyLibrary
  {
      public class Class1
      {
          public void Method()
          {
              var numbers = new List&lt;int&gt; { 1, 2, 3 };
              var chars = new List&lt;char&gt; { 'a', 'b', 'c' };
  
              foreach (var (n, c) in Enumerable.Zip(numbers, chars))
              {
                  Console.WriteLine($"{n}, {c}");
              }
          }
      }
  }
  </code></pre>
  
  <p>The compiler accepts this without complaining.</p>
  
  <p>Now I create a new project of type class library, .NET Standard, C# and I paste in the same code and change the namespace. The compiler now gives these errors:</p>
  
  <pre><code>1&gt;[path]\Class1.cs(15,47,15,50): error CS7036: There is no argument given that corresponds to the required formal parameter 'resultSelector' of 'Enumerable.Zip&lt;TFirst, TSecond, TResult&gt;(IEnumerable&lt;TFirst&gt;, IEnumerable&lt;TSecond&gt;, Func&lt;TFirst, TSecond, TResult&gt;)'
  1&gt;[path]\Class1.cs(15,36,15,66): error CS1061: 'TResult' does not contain a definition for 'Deconstruct' and no accessible extension method 'Deconstruct' accepting a first argument of type 'TResult' could be found (are you missing a using directive or an assembly reference?)
  1&gt;[path]\Class1.cs(15,36,15,66): error CS8129: No suitable 'Deconstruct' instance or extension method was found for type 'TResult', with 2 out parameters and a void return type.
  1&gt;[path]\Class1.cs(15,27,15,28): error CS8130: Cannot infer the type of implicitly-typed deconstruction variable 'n'.
  1&gt;[path]\Class1.cs(15,30,15,31): error CS8130: Cannot infer the type of implicitly-typed deconstruction variable 'c'.
  </code></pre>
  
  <p>If I invoke "go to definition" on Enumerable.Zip in each copy of the code, I see that in the Enumerable accessible to the .NET Core project there are two overloads of Zip() but in the Enumerable accessible to the .NET Standard project there is only one. The 2-argument overload is missing. A small number of other methods are also missing from the .NET Standard version: SkipLast(), TakeLast() and ToHashSet(). Why are these methods and in particular, the overload of Zip() omitted from .NET Standard?</p>