什么是此Linq查询等效的C#扩展方法?

Rob*_*vey 4 c# linq extension-methods group-by

这个例子中:

public void Linq40()
{
    int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };

    var numberGroups =
        from n in numbers
        group n by n % 5 into g
        select new { Remainder = g.Key, Numbers = g };

    foreach (var g in numberGroups)
    {
        Console.WriteLine("Numbers with a remainder of {0} when divided by 5:",
            g.Remainder);

        foreach (var n in g.Numbers)
        {
            Console.WriteLine(n);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

什么是纯粹的c#等价物?我明白了......

var numberGroups = numbers.GroupBy(n => n % 5)...
Run Code Online (Sandbox Code Playgroud)

into条款是一个有点神秘,我无法弄清楚如何获得KeySelect.

BFr*_*ree 8

numbers.GroupBy(n => n % 5).Select(g => new { Remainder = g.Key, Numbers = g });
Run Code Online (Sandbox Code Playgroud)


Ree*_*sey 8

的GroupBy返回IEnumerable<T><IGrouping<TKey, TSource>.有了这个,你可以做第二个Select操作,它返回与上面完全相同的值:

var numberGroups = numbers.GroupBy(n => n % 5)
                          .Select(g => new { Remainder = g.Key, Numbers = g });
Run Code Online (Sandbox Code Playgroud)