LINQ pada C#

LINQ (Language-Integrated Query) pada C# merupakan cara sederhana untuk memanggil atau memproses data pada suatu Collection. Kita dapat menggunakan LINQ misalnya untuk memfilter, mengurutkan atau bahkan menggabungkan data di dalam Collection. Cara paling sederhana untuk menggunakan LINQ adalah:

from [IdentifierItem] in [collection] where [kondisi] select [IdentifierItem]

Di bawah ini adalah contoh penggunaan LINQ:

  class Program {
    static void Main(string[] args) {
      List<Mahasiswa> Mhs = new List<Mahasiswa>() {
        new Mahasiswa("Fandi", "Fisika", 2001),
        new Mahasiswa("Agung", "Fisika", 2001),
        new Mahasiswa("Jon", "Fisika", 2000),
        new Mahasiswa("Arthur", "Fisika", 2000),
        new Mahasiswa("Hendera", "Kimia", 2001),
        new Mahasiswa("Kurniawan", "Kimia", 2001),
      };

      Console.WriteLine("Mahasiswa tahun 2001:");
      IEnumerable<Mahasiswa> tahun2001 = from m in Mhs where m.TahunMasuk == 2001 select m;
      foreach (Mahasiswa m in tahun2001) {
        Console.WriteLine(m);
      }

      Console.WriteLine("\nMahasiswa Fisika:");
      List<Mahasiswa> fisika = (from m in Mhs where m.Jurusan == "Fisika" select m).ToList();
      foreach (Mahasiswa m in fisika) {
        Console.WriteLine(m);
      }

      Console.WriteLine("\nMahasiswa Fisika tahun 2001:");
      IEnumerable<string> fisika2001 = from m in Mhs where m.Jurusan == "Fisika" && m.TahunMasuk == 2001 select m.Nama;
      foreach (string nama in fisika2001) {
        Console.WriteLine(nama);
      }

      Console.ReadKey();
    }
  }

Untuk contoh di atas, kita memerlukan class Mahasiswa:

  class Mahasiswa {
    public string Nama { get; set; }
    public string Jurusan { get; set; }
    public int TahunMasuk { get; set; }
    public Mahasiswa(string nama, string jurusan, int tahun) {
      this.Nama = nama;
      this.Jurusan = jurusan;
      this.TahunMasuk = tahun;
    }
    public override string ToString() {
      return "Nama   : " + Nama 
        + "\nJurusan: " + Jurusan 
        + "\nTahun  : " + TahunMasuk 
        + "\n--------------------";
    }
  }

Nilai hasil LINQ adalah berupa IEnumerable. IEnumerable adalah suatu Collection yang cocok digunakan dengan perulangan foreach. Tetapi hasil ini juga dapat langsung dikonversi menjadi List seperti contoh LINQ yang kedua di atas. Contoh yang ketiga, menunjukkan bahwa LINQ juga dapat hanya mengambil satu member objek saja. Untuk teknik yang lebih lanjut mengenai LINQ, dapat mengunjungi MSDN.