Tasarım Kodlama

C# LINQ Where Kullanımı

LINQ’daki filtreleme operatörleri, verilen bazı kriterlere göre diziyi (koleksiyonu) filtreler.

Aşağıdaki tablo, LINQ’da bulunan tüm filtreleme operatörlerini listelenmektedir.

Filtreleme OperatörüTanımı
WhereBir yüklem işlevine dayalı olarak koleksiyondan değerleri döndürür.
OfTypeBelirtilen türe göre koleksiyondan değerleri döndürür. Ancak, belirli bir türe yayın yapma yeteneklerine bağlı olacaktır.

Where

Where operatörü (Linq uzantı yöntemi), koleksiyonu belirli bir ölçüt ifadesine göre filtreler ve yeni bir koleksiyon döndürür. Kriterler lambda ifadesi veya Func temsilci tipi olarak belirtilebilir.

Where extension yöntemi aşağıdaki iki aşırı yüklemeye sahiptir. Her iki aşırı yükleme yöntemi de bir Func temsilci türü parametresini kabul eder. Bir aşırı yük gerekli Func giriş parametresi ve ikinci aşırı yük yöntemi gerekli Func giriş parametresi burada int dizin içindir:

Sorgu Sözdiziminde Where yan tümcesi

Aşağıdaki sorgu örneği, verilen koleksiyondan (sıradan) genç olan öğrencileri filtrelemek için bir Where operatörü kullanır. Yüklem işlevi olarak bir lambda ifadesi kullanır.

Yukarıdaki örnekte çalıştırıldığında aşağıdaki öğrenciler listelenecektir.

Yukarıdaki örnek sorguda, lambda ifade gövdesi s.Yas> 12 && s.Yas<20, koleksiyondaki her öğrenciyi değerlendiren bir yüklem işlevi Func olarak geçirilir.

Alternatif olarak, aşağıdaki gibi bir yüklem işlevi olarak geçmek için anonim bir yöntemle Func türü bir temsilci de kullanabilirsiniz (çıktı aynı olacaktır):

Where extension methodu Sözdizimi

Sorgu söz diziminden farklı olarak, LINQ yöntemi sözdiziminde yalnızca gövde ifadesi yerine tüm lambda ifadesini yüklem işlevi olarak geçirmeniz gerekir.

Yukarıda bahsedildiği gibi, Where extension yöntemi ayrıca koleksiyondaki mevcut öğenin indeksini içeren ikinci bir aşırı yüke sahiptir. Gerekirse bu dizini mantığınızda kullanabilirsiniz.

Aşağıdaki örnek, koleksiyondaki tek öğeleri filtrelemek ve yalnızca çift öğeleri döndürmek için Where yan tümcesini kullanır. Lütfen dizinin sıfırdan başladığını unutmayın.

Çoklu Where yan tümcesi

Tek bir LINQ sorgusunda Where() extension yöntemini birden fazla kez çağırabilirsiniz.

Yorum yap