CodeBlanks Logo Icon CodeBlanks

group by

C# kursu · İleri seviye · Ders 35/83

sorgu söz diziminde group by ve into kullanmayı öğrenirsin.

group by ile gruplama

group ... by, elemanları bir anahtara göre kümelere ayırır. Sonuç, her biri bir IGrouping<TKey, TElement> olan bir dizidir. Her küme aynı anahtarı paylaşan öğeleri içerir. Örnek: from n in numbers group n by n % 2.

Bu, sayıları çift/tek olarak iki kümeye ayırır. Her kümenin Key özelliği anahtarı (0 veya 1), kendisi de o anahtara sahip öğelerin dizisidir. Kümeler üzerinde foreach ile gezebilirsin.

into ile devam

into, gruplama sonrası sorguya devam etmeyi sağlar. group n by n % 2 into g yazdıktan sonra g bir aralık değişkeni olur ve sonraki yan tümcelerde kullanılabilir.

Devam eden kısımda her küme üzerinde işlem yapabilirsin: select new { Key = g.Key, Count = g.Count() }. Bu, her kümenin anahtarını ve öğe sayısını içeren anonim tipli bir dizi üretir. into, gruplama sonrası ek projeksiyon için kullanışlıdır.

Uygulama Çift/tek kümeleri say

numbers dizisinde group n by n % 2 into g ile sayıları çift/tek olarak kümele. Her küme için select new { Key = g.Key, Count = g.Count() } ile anonim tip üret. foreach ile her kümenin Key ve Count değerlerini Console.WriteLine($"{g.Key}: {g.Count}") ile yazdır.

Örnek çözümü göster
{g.Count}"); } ile yazdır.
Örnek çözüm:
using System;
using System.Linq;

class Program
{
    static void Main()
    {
        int[] numbers = { 1, 2, 3, 4, 5, 6 };
        var query = from n in numbers
                    group n by n % 2 into g
                    select new { Key = g.Key, Count = g.Count() };
        foreach (var g in query)
        {
            Console.WriteLine($"{g.Key}: {g.Count}");
        }
    }
}

Kendini test et

  1. group by yan tümcesini tamamla

    var query = from n in numbers ____ n by n % 2;
    Cevabı göster
    var query = from n in numbers group n by n % 2;
  2. group by sonucu ne türdür?

    • Bir sayı
    • Bir dizi
    • IGrouping<TKey, TElement> kümesi
    • Bir dize
    Cevabı göster

    IGrouping<TKey, TElement> kümesi — Doğru. group by, IGrouping<TKey, TElement> kümesi döndürür.

  3. Anahtar kelimeyi rolüne eşle

    group
    Kümeleme yapar
    by
    Anahtarı belirtir
    into
    Devam yaratır
    select
    Projeksiyon yapar

İleri seviye bölümündeki tüm dersler