LINQ Syntax ile Restriction ve OrderBy

Restriction Operatörü denilen şey aslında ismi kadar karmaşık değil 🙂 Buna restriction operatörü demelerinde sebep, gelen dataları duruma göre engellemek ve bu vesile ile filtrelemek anlamına gelmektedir. Yani istenmeyen dataları engellemek anlamındadır. Bu da aslında SQL sorgularında da kullandığımız “WHERE” ile yapılmaktadır. Ama Linq ‘teki yazım şekli, özellikle birden fazla filtre belirtiyorsak, IF cümlesi yazmaya benzemektedir.

Şöyle ki :

var sorgu = from ogr in list
                      where ogr.Ad.Contains("e")
                      select ogr;

Bu linq sorgusu ile elimizdeki list içerisindeki her bir nesneyi ogr olarak ele alıp, daha sonra “Ad” property’si içinde “e” içerenleri filtreleyip daha sonra ogr nesnesinin tamamını select etmiş oluyoruz.

WHERE kısmında birden fazla koşul belirtebiliriz. Bunu da tıpkı C# ‘ta IF yazar gibi çift ampersand işareti ile “&&” yapmaktayız.

Mesela, aynı linq sorgusu, Ad içerisinde “e” geçenler VE “m” geçenleri bulmak istersek ;

var sorgu = from ogr in list
            where ogr.Ad.Contains("e"&& ogr.Ad.Contains("m")
            select ogr;

Bu gelen sonuçları Id property’sine göre, sıralamak istersek WHERE cümlesinden sonra “orderby” kullanmamız gerekecek.

var sorgu = from ogr in list
            where ogr.Ad.Contains("e"&& ogr.Ad.Contains("m")
            orderby ogr.Id descending
            select ogr;

Property ismini belirttikten sonra, “ascending” yada “descending” yazabilirsiniz. Eğer descending yazmazsak, default olarak ascending (yani artan şekilde) sıralayacaktır.

Emre ÖZÇELİKEL , 23 belge yazmış

C#, .NET 7, MVC ve MAUI konularında öğrenmeye ve öğretmeye meraklı bir yazılım geliştiricidir. Kendi firması üzerinden, Türkiye'nin önde gelen firmalarına yazılım destek hizmetleri vermekle beraber, eğitim kurumlarında bu konularda yüz yüze eğitimler de vermektedir.

Cevap Gönderin