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

5
这个例子中:
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);
        }
    }
}

什么是纯C#等效代码?我遇到了这个问题...
var numberGroups = numbers.GroupBy(n => n % 5)...

但是into子句有点神秘,我无法弄清楚如何从Select中获取Key


1
我认为你是指使用“扩展方法”来完成它的方式? - JOBG
2个回答

9

GroupBy 方法返回一个 IEnumerable<T>,其中的元素是 <IGrouping<TKey, TSource> 类型。通过这个方法,您可以进行第二次选择操作,以获得与上述相同的值:

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

8
numbers.GroupBy(n => n % 5).Select(g => new { Remainder = g.Key, Numbers = g });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接