GroupBy, Join, Aggregate, proyeksi (tipe anonim)
Kelompokkan item, gabungkan rangkaian, reduksi dengan Aggregate, dan hasilkan proyeksi yang bersih menggunakan tipe anonim.
GroupBy, Join, Aggregate, proyeksi (tipe anonim) adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 3. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C# Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C# Academy mencakup 3 pelajaran total.
Ikhtisar operator lanjutan
Hari ini:
- GroupBy: membuat kelompok berdasarkan kunci
- Join: menggabungkan dua urutan berdasarkan kunci
- Aggregate: mereduksi menjadi satu nilai
- Tipe anonim: proyeksi yang rapi
Pengelompokan berdasarkan kunci
GroupBy membuat kelompok dengan kunci dan urutan bagian dalam yang berisi item-item dengan kunci yang sama.
using System;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
string[] words = new string[] { "ant", "cat", "tiger", "lion", "dog", "eagle" };
var groups = words.GroupBy(w => w.Length);
foreach (var g in groups)
{
Console.WriteLine("Len " + g.Key + ":");
foreach (string w in g) Console.WriteLine(" - " + w);
}
}
}
Penggabungan dalam berdasarkan kunci
Join mencocokkan item dari dua urutan berdasarkan kunci dan memproyeksikan hasil gabungannya.
using System;
using System.Linq;
public sealed class Customer { public int Id; public string Name; public Customer(int id, string name){ Id=id; Name=name; } }
public sealed class Order { public int CustomerId; public string Item; public Order(int cid, string item){ CustomerId=cid; Item=item; } }
public class Program
{
public static void Main(string[] args)
{
var customers = new Customer[] { new Customer(1,"Ada"), new Customer(2,"Bob") };
var orders = new Order[] { new Order(1,"Book"), new Order(1,"Pen"), new Order(2,"Map") };
var joined = customers.Join(
orders,
c => c.Id,
o => o.CustomerId,
(c, o) => c.Name + " -> " + o.Item);
foreach (string s in joined) Console.WriteLine(s);
}
}
Dasar-dasar Aggregate
Aggregate menerapkan akumulator untuk mereduksi suatu urutan menjadi satu hasil. Pilih nilai awal yang tepat.
using System;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
int[] xs = new int[] { 1, 2, 3, 4 };
// Product with seed 1
int product = xs.Aggregate(1, (acc, n) => acc * n);
Console.WriteLine("Product = " + product); // 24
// Join words with a separator using seed
string[] words = new string[] { "a", "b", "c" };
string csv = words.Aggregate("", (acc, w) => acc == "" ? w : acc + "," + w);
Console.WriteLine(csv); // a,b,c
}
}
Proyeksi tipe anonim
Gunakan tipe anonim untuk proyeksi yang rapi: new { Name = c.Name, ... } atau bentuk singkat new { c.Name }.
using System;
using System.Linq;
public sealed class City { public string Name; public int Pop; public City(string n,int p){ Name=n; Pop=p; } }
public class Program
{
public static void Main(string[] args)
{
var cities = new City[]
{
new City("Oslo", 634000),
new City("Rome", 2873000),
new City("Riga", 605000)
};
var small = cities
.Where(c => c.Pop < 1000000)
.Select(c => new { c.Name, Millions = (c.Pop / 1000000.0) });
foreach (var x in small)
{
Console.WriteLine(x.Name + " ~ " + x.Millions + "M");
}
}
}
Kiat praktis
Kiat:
- Setelah GroupBy, lakukan iterasi pada kelompok, lalu pada item.
- Gunakan Join jika Anda memiliki dua sumber dengan kunci yang cocok.
- Pilih nilai awal yang sesuai untuk Aggregate.
- Tipe anonim bersifat lokal; kembalikan DTO konkret dari API publik.
Tujuan GroupBy
Ringkasan
Ringkasan: Gunakan GroupBy untuk membuat kelompok, Join untuk menggabungkan sumber, Aggregate untuk mereduksi, dan tipe anonim untuk proyeksi yang rapi.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “GroupBy, Join, Aggregate, proyeksi (tipe anonim)” gratis?
Ya — teks lengkap “GroupBy, Join, Aggregate, proyeksi (tipe anonim)” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C# Academy, upgrade ke CoddyKit PRO. Kursus C# Academy mencakup 3 pelajaran total.
Apa yang akan aku pelajari di “GroupBy, Join, Aggregate, proyeksi (tipe anonim)”?
Kelompokkan item, gabungkan rangkaian, reduksi dengan Aggregate, dan hasilkan proyeksi yang bersih menggunakan tipe anonim. Kamu berlatih C# Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai C# Academy?
Tidak diperlukan pengalaman sebelumnya. C# Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 3.
Berapa lama pelajaran “GroupBy, Join, Aggregate, proyeksi (tipe anonim)” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran C# Academy ini?
Ya. Setiap pelajaran C# Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- GroupBy, Join, Aggregate, proyeksi (tipe anonim)
- Materialisasi (ToList, ToDictionary) & catatan kinerja
- Kiat komposabilitas