簡體   English   中英

什么是此Linq查詢等效的C#擴展方法?

[英]What is the C# extension methods equivalent for this Linq query?

這個例子中:

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

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

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM