C# LINQ ile Gömülü Fonksiyonlar Kullanımı konusunda kendini geliştirmek isteyenlere özel eğitim! Bu videoda LINQ fonksiyonlarının kullanımı her yönüyle anlatılıyor Hemen izleyin ve C# yeteneklerinizi genişletin!

C# LINQ, programlama dilinde çok sık kullanılan bir sorgu yapısıdır. Bu yapı içerisinde sıkça kullanılan ve sorgulara büyük kolaylık sağlayan gömülü fonksiyonlar ise oldukça önemlidir. Bu makalede, C# LINQ sorguları içerisinde kullanılan gömülü fonksiyonların ayrıntılarına ve kullanım örneklerine yer vereceğiz.
Where() fonksiyonu, belirtilen koşulları sağlayan elemanları filtrelemek için kullanılırken Select() fonksiyonu, kaynak listedeki her elemanı belirtilen bir özelliğe veya hesaplanmış bir değere projekte ederek yeni bir liste oluşturmak için kullanılır. Distinct() fonksiyonu, seçilen özelliğe veya değere göre tekerrürlü elemanları bırakarak, bir kaynaktan yalnızca eşsiz elemanları almak için kullanılır.
OrderBy() ve ThenBy() fonksiyonları, sıralama işlemlerini belirtilen özelliklere göre gerçekleştirir. Sum(), First() ve Last() fonksiyonları ise sırasıyla seçilen elemanların toplamını, ilk ve son elemanlarını bulmak için kullanılır. GroupBy() fonksiyonu ise kaynak listeyi belirli bir özellik veya değere göre gruplamak için kullanılır ve Join() fonksiyonu birden fazla kaynak listeyi belirli bir özellik veya değere göre birleştirerek işlem sonucunda yeni bir koleksiyon oluşturur.
Bu gömülü fonksiyonlar, C# LINQ sorgularında oldukça kullanışlıdır ve programcıların işlerini kolaylaştırmaktadır. Doğru bir şekilde kullanıldığında, programlamadaki verimliliği artırarak daha faydalı ve işlevsel uygulamalar geliştirme olanağı sağlar.
Where Fonksiyonu
C# LINQ sorguları içerisinde sıkça kullanılan gömülü fonksiyonlardan biri de Where() fonksiyonudur. Bu fonksiyon, verilen koşulları sağlayan elemanları filtrelemek için kullanılır. Bu sayede, veri kümesinden sadece istenilen koşullara uygun olanları seçmek mümkün hale gelir.
Örneğin, bir öğrenci listesi verildiğinde, sadece belli bir not ortalamasının üzerinde olan öğrencilerin seçilmesi gerektiği durumlarda Where() fonksiyonu kullanılır. Bu sayede, not ortalaması belirli bir değerin üzerinde olan öğrencilerin filtrelenmesi sağlanır.
Where() fonksiyonu, LINQ sorguları içerisinde oldukça kullanışlıdır ve veri kümesini daraltmak için etkili bir yöntemdir. Ayrıca, birden fazla koşul belirlendiğinde, bu koşulların hepsinin sağlanması zorunlu tutulabilir veya sadece bir tanesinin sağlanması yeterli olabilir.
Bu özellikleri sayesinde, Where() fonksiyonu, LINQ sorgularının en temel ve önemli gömülü fonksiyonlarından biri olarak karşımıza çıkar.
Select Fonksiyonu
C# LINQ sorgularında sık kullanılan bir diğer gömülü fonksiyon da, Select() fonksiyonudur. Bu fonksiyon, kaynak listedeki her elemanı belirtilen bir özelliğe veya hesaplanmış bir değere projekte ederek yeni bir liste oluşturmak için kullanılır. Bu şekilde, kaynak listeyi manipüle etmeden yalnızca istenilen özellik veya değerlerin alınmasına olanak tanımaktadır.
Örneğin, bir kişi kayıt listesi için aşağıdaki sorguyu oluşturabiliriz:
Adı | Soyadı | Yaşı |
---|---|---|
Ali | Yılmaz | 28 |
Aylin | Demir | 32 |
Can | Gündoğdu | 25 |
Deniz | Yıldız | 30 |
Bu kaynak listemizden sadece isimleri almak için aşağıdaki C# kodu kullanılabilir:
var isimListesi = kaynakListe.Select(x => x.Adı).ToList();
Bu verilen kod, kaynak listemizden yalnızca isimleri alır ve bu isimleri yeni bir listeye atar. Benzer şekilde, Select() fonksiyonu ile kaynak listedeki herhangi bir özelliğe ulaşabilir veya hesaplamalar yaparak yeni bir liste oluşturabilirsiniz.
Distinct Fonksiyonu
Distinct() fonksiyonu, LINQ sorgularının vazgeçilmez gömülü fonksiyonlarından biridir. Bu fonksiyon, kaynak listenin seçilen özellik veya değerlerine göre tekrar eden elemanları filtreleyerek, yalnızca eşsiz elemanları içeren bir liste döndürür.
Bir örnek vermek gerekirse; bir ürün listesi içerisinde aynı ismi taşıyan ürünler bulunabilir. Bu ürünleri farklı özellikleriyle birlikte listelemek istediğimizde, bazı ürünler tekrar edebilir. Distinct() fonksiyonu kullanarak, tekrar eden ürünleri atlayarak sadece bir kez listelememiz mümkündür.
Özelikle, liste içindeki belirli özelliklere göre tekrar etmeyen tek bir liste oluşturmak isteyen yapılar için Distinct() fonksiyonu oldukça işlevseldir.
Bu işlem sonucunda, kaynak listenin boyutu ne kadar büyük olursa olsun, Distinct() fonksiyonu ile sadece eşsiz elemanlar listelenerek, zaman ve kaynak tasarrufu sağlanabilir.
OrderBy ve ThenBy Fonksiyonları
C# LINQ sorgularında kullanılan önemli fonksiyonlardan birisi de OrderBy() ve ThenBy() fonksiyonlarıdır. Bu fonksiyonlar, sıralama işlemini özelliklere göre gerçekleştirir ve sorguların daha okunaklı hale gelmesinde önemli bir rol oynar. OrderBy() fonksiyonu, sıralama işlemini yalnızca bir özellik üzerinden yapar. Örneğin, bir kaynak listeniz varsa ve bu listedeki bir özelliğe göre sıralamak istiyorsanız, OrderBy() fonksiyonunu kullanabilirsiniz.
ThenBy() fonksiyonu ise sıralama işlemini daha fazla özellik üzerinden yapmanızı sağlar. İki özellik arasındaki sıralama farkını kontrol etmek için kullanılabilir. Sıralama işlemi, ilk özellik üzerinden gerçekleştirilir ve ardından aynı değere sahip elemanlar, ikinci özelliğe göre sıralanır. Bu şekilde, sıralama işlemi daha doğru ve istediğiniz sonuca ulaşmanız kolaylaşır.
Sum,Firs,Last
C# LINQ'in en kullanışlı gömülü fonksiyonlarından bir kaçı olan Sum(), First() ve Last() fonksiyonlarını ele alalım. Sum() fonksiyonu, seçilen elemanların toplam değerini almak için kullanılır. Örneğin, bir listeniz varsa ve bu listedeki sayıların toplamını almak istiyorsanız, Sum() fonksiyonunu kullanabilirsiniz. First() fonksiyonu, seçilen elemanların ilk değerini verirken, Last() fonksiyonu ise seçilen elemanların son değerini verir. Bu fonksiyonlardan herhangi birini kullanırken, öncelikle koleksiyonunuzu seçin ve ardından fonksiyonu çağırın. Örneğin:
Listedeki sayılar: | [1,2,3,4,5] |
---|---|
Sum() sonucu: | 15 |
First() sonucu: | 1 |
Last() sonucu: | 5 |
Bu fonksiyonları kullanırken, sadece sayılarla sınırlı değilsiniz. İlgili veri tipine uygun herhangi bir veri seti için kullanabilirsiniz. Ayrıca, koleksiyonunuzda veri içeren farklı özellikler varsa, istediğiniz özelliği seçerek bu fonksiyonları kullanabilirsiniz. Örneğin, bir öğrenci listesi koleksiyonunda isim, yaş ve notları varsa, öğrencilerin not ortalamasını hesaplamak için Sum() fonksiyonunu kullanabilirsiniz.
GroupBy Fonksiyonu
GroupBy() fonksiyonu, C# LINQ sorgularında oldukça özel bir yer tutar. Bu fonksiyon sayesinde kaynak listemizde belirli bir özelliğe veya değere göre gruplama işlemini yaparak, daha kontrollü bir şekilde verilerimizi yönetebiliriz.
GroupBy() fonksiyonunun kullanımı oldukça basittir. Örneğin, bir öğrenci listesi olsun ve öğrencilerimizi okul ve sınıf numarası gibi belirli özniteliklere göre gruplamak istiyoruz. İşte bu noktada, GroupBy() fonksiyonu devreye girerek bu gruplandırma işlemini kolaylaştırır.
Aşağıdaki örnek kod bloğunda, bir öğrenci listesine "School" ve "ClassNumber" özelliklerine göre gruplama işlemi yapılmıştır:
Liststudents = new List ();// öğrenci listesi oluşturulduktan sonravar groupedStudents = students.GroupBy(s => new { s.School, s.ClassNumber });
Bu kod bloğunda öğrenci listesi "students" isimli bir referans değişkeni ile tanımlanmıştır. Daha sonra, GroupBy() fonksiyonu sayesinde "School" ve "ClassNumber" özelliklerine göre gruplama işlemi yapılarak "groupedStudents" isimli bir referans değişkeni oluşturulmuştur.
Bu şekilde, GroupBy() fonksiyonu sayesinde daha detaylı ve kapsamlı bir şekilde veri yönetimi yapabilirsiniz. Özellikle büyük veri setleri üzerinde çalışırken, veri gruplama işlemleri oldukça önemli hale gelir ve GroupBy() fonksiyonu kullanımınızı daha da kolaylaştırır.
Join Fonksiyonu
C# LINQ sorgularının bir diğer gömülü fonksiyonu da Join() fonksiyonudur. Bu fonksiyon, birden fazla kaynak listeyi belirli bir özellik veya değere göre birleştirerek, işlem sonucu yeni bir koleksiyon oluşturur.
Join() fonksiyonu, iki ayrı kaynak listeyi birbirine bağlamak için kullanılabilir. Bu işlem için öncelikle, her iki kaynak listelerin üzerinde aynı isimde bir özellik belirtilmelidir. Bu özellik ise, birinci olan kaynak listesinde aranacak özelliktir. İkinci kaynak listesi için ise, bu özellik ismi değiştirilerek, birinci kaynak listesindeki ile aynı olmalıdır.
Bu fonksiyon ayrıca, belirtilen özellikteki değerleri karşılaştırıp, eşleştirdikten sonra filtreleme işlemi de yapabilir. İşlem sonucunda oluşan yeni koleksiyon, iki kaynağın içindeki özellikleri ve değerleri birleştirerek, yeni bir liste halinde döndürülür.
Kaynak Liste 1 | Kaynak Liste 2 | Join Sonucu |
---|---|---|
Adı | Adı | Adı, Soyadı, Yaş, Şehir |
Ali | Öğrenci | Ali, Kaya, 25, İstanbul |
Ayşe | Öğretmen | Ayşe, Güneş, 30, Ankara |
Deniz | Avukat | Deniz, Pınar, 40, İzmir |
Yukarıdaki örnek, Join() fonksiyonu ile iki kaynak listenin nasıl birleştirildiğini göstermektedir. Kaynak Liste 1'in Adı özelliği ile Kaynak Liste 2'nin Adı özelliği karşılaştırılmış ve eşleştirilmiştir. Eşleştirme sonucunda, Adı özelliği Ali, Ayşe ve Deniz için ortaktır ve birleştirilmiştir. Join() fonksiyonu, oluşan yeni listenin her bir elemanı için Soyadı, Yaş ve Şehir özelliklerini de birleştirerek yeni bir koleksiyon oluşturmuştur.