LINQ Nedir?
LINQ, programlama diline SQL biçimi veri sorgulama yeteneği ekler. LINQ ile SQL Server veri tabanları, XML belgeleri, ADO.NET Veri Kümeleri (Dataset) ve hafızada bulunan koleksiyon türlerindeki verileri sorgulayabilirsiniz.
Linq yapısında iki çeşit sorgu sözdizimi vardır bunlar;
- Sorgu Sözdizimi
- Metot Sözdizimi
*Sorgu Sözdizimine ait basit bir örneğe bakalım.
Satır 15: “liste” dizisinin elemanlarını gez ve gezerken sırası gelen her bir elemanı “sayi” değişken adı ile tanımla
Satır 16: “sıradaki eleman % 2” (yani sayi Mod 2) işlemi yapıldığında 1 sonucunu veriyorsa
Satır 17: 1 sonucu veren sayıyı “tekler” koleksiyonuna ekle.
Satır 21: “foreach” döngüsü kullanarak listenin elemanlarını tek tek gez ve çıktıya yaz.
*Metot Sözdizimi için basit bir örneğe bakalım.
Sorgu sözdiziminde yazdığımız metot ile aynı işlemi yapar tek farkı metot sözdizimi bizi uzun bir sorgu kodu yazmaktan kurtarır ve daha anlaşılırdır.
Temel LINQ Sorguları
Where() : Filtreleme için kullanılır. Generic type özelliğine sahiptir.
OfType() :Özel tipler ile dolu olan koleksiyondaki verilerin belirtilen tipte listelenmesi sağlar.
OrderBy(): Koleksiyon öğelerinin artan yada azalan sıraya göre listelenmesini sağlar. Varsayılan olarak Asceding ‘dir(Artan sıraya göre). Öğelerin azalan sıraya göre listelenmesi için Descending anahtar sözcüğü kullanılır.
OrderByDescending(): Koleksiyonda bulunan verilerin belirtilen parametrelerine göre azalan olarak listelenmesini sağlar.
Reverse(): Koleksiyon içerisinde bulunan verilerin listelenme sırasını değiştirme özelliğine sahiptir. Koleksiyondaki verilerin tersine sıralanmasını sağlar.
GroupBy():Koleksiyondaki verilerin gruplanması için kullanılır. GroupBy() metodu ile birden fazla parametre tanımlayarak gruplama yapılabilir.
Any() :Koleksiyonda bulunan verilerin olup olmadığını kontrol eder. Geriye dönen değerler true yada false’dir.
Contains():koleksiyonda bulunan verilerin, belirlenen koşula göre olup olmadığını kontrol eder. Dönen değer tipi true yada false’dur.
All(): koleksiyonda bulunan tüm veriler içerisinde belirlenen koşullara göre kayıt olup olmadığını döner. Geriye dönen değer true ise kayıt var, false ise kayıt yok anlamındadır.
Join(): İki veri kaynağındaki satırları aynı olan bir alan değerini kullanarak birleştirip tek bir liste oluşturmak için kullanılır.
Select(): Koleksiyonda bulunan elementler kullanılarak yeni bir koleksiyon oluşturulur.
SingleOrDefault(): Koleksiyon içerisinde bulunan öğelerden tek öğe döndürür. Koleksiyon boş ise varsayılan değer döner.
Distinct(): Koleksiyon içerisinde bulunan tekrarlayan kayıtların gösterilmesini engeller.
ToArray(): Koleksiyonda bulunan verileri diziye dönüştürür.
ToList(): Koleksiyonda bulunan verilerin list’e dönüştürür.
Range():Belirtilen iki değer arasındaki tam sayı değerlerinin koleksiyon halinde dönmesini sağlar.
Count(): Koleksiyonda bulunan verilerin sayısını verir.
Sum(): Koleksiyon içerisinde bulunan sayısal değerlerin toplanmasını sağlar.
Min(): Koleksiyon içerisinde bulunan sayısal değerlerin ün küçük olanını verir.
Max(): Koleksiyon içerisinde bulunan sayısal verilerin en büyük değere sahip olan elementini döndürür.
Average(): Koleksiyonda bulunan sayısal değerlerin ortalamasını döndürür.