Misalnya saya mempunya sebuah list bertipe int yang memiliki elemen bernilai dari 1 - 9, dengan menggunakan LINQ kita bisa menampilkan isi dari elemen list yang hanya merupakan bilangan ganjil saja. berarti yang akan tampil hanya bilangan 1, 3, 5, 7, dan 9.
Berikut ini adalah bentuk umum dari LINQ
from nama_penampung in nama_collection
where syarat pemeilihan
orderby nama_kategori_pengurutan ascending/descending
select nama_pilihan
nama_penampung adalah sebuatan yang kita berikan untuk menampun sebuah elemen dalam sebuah collection (list, queue, stack, dsb) yang ingin kita lakukan pemilihan. Syarat pemilihan adalah syarat yang ingin kita terapkan/ periksa terhadap setiap elemen collection ketika kita melakukan pemilihan. nama_kategori_pengurutan adalah nama elemen atau anggota elemen yang ingin dijadikan dasar dari sebuah pengurutan. ascending dan descending adalah mode pengurutan yang ingin kita terapkan. Ascending adalah pengurutan secara menaik, dan descending adalah pengurutan secara menurun. Nama pilihan adalah nama elemen atau nama anggota elemen yang ingin kita pilih.
Untuk lebih jelasnya silahkan amati contoh program berikut ini.
class Undian :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ContohLINQ
{
class Undian
{
private int _noID;
private string _nama;
public int NoID
{
get { return _noID; }
}
public string Nama
{
get { return _nama; }
}
public Undian(int number, string nama)
{
_noID = number;
_nama = nama;
}
public Undian()
{
_noID = 0;
_nama = "noname";
}
}
}
Program utama :using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ContohLINQ
{
class Program
{
static void Main(string[] args)
{
List<Undian> undian = new List<Undian>();
undian.Add(new Undian(1, "Julia"));
undian.Add(new Undian(2, "Diana"));
undian.Add(new Undian(3, "Ririn"));
undian.Add(new Undian(4, "Vina"));
//menampilkan isi list
foreach (Undian i in undian)
{
Console.WriteLine("No ID : {0}\nNama : {1}", i.NoID, i.Nama);
Console.WriteLine();
}
Console.WriteLine();
//list untuk menampung int NoID
List<int> noID;
//LINQ hanya memilih NoID
noID = (
from no in undian
select no.NoID
).ToList();
foreach (int i in noID)
{
Console.WriteLine("No ID : {0}", i);
}
Console.WriteLine();
//list untuk menampung string Nama
List<string> nama;
//LINQ hanya memilih Nama
nama = (
from n in undian
select n.Nama
).ToList();
foreach (string nam in nama)
{
Console.WriteLine("Nama : {0}", nam);
}
Console.WriteLine();
//list untuk menampung objek Undian
List<Undian> noGanjil;
//LINQ hanya memilih objek berdasarkan NoID dengan no ganjil
//dan di urutkan secara menurun
noGanjil = (from nG in undian
where nG.NoID % 2 != 0
orderby nG.NoID descending
select nG).ToList();
foreach (Undian i in noGanjil)
{
Console.WriteLine("No ID Ganjil : {0}\nNama : {1}", i.NoID, i.Nama);
Console.WriteLine();
}
}
}
}
Jika dijalankan hasilnya adalah sebagai berikut :

No comments:
Post a Comment