LINQ sorgularının Sum, Min, Max ve Average metodları ile veri yönetimi artık daha kolay! Bu yazıda, LINQ sorguları nasıl oluşturulur, veriler nasıl işlenir detaylı bir şekilde anlatılıyor Okumak için hemen tıklayın!

Birçok .NET programcısı, LINQ sorgularını kullanarak verileri sorgulamayı ve işlemeyi tercih ediyor. Bu, verileri işlemenin daha kolay ve hızlı bir yoludur. LINQ sorgularını kullanırken, verileri işlemek için birkaç farklı metot kullanabilirsiniz. Bu makalede, Sum, Min, Max ve Average metotlarının kullanımı incelenecektir.
Sum metodu belirli bir özellik değerinin toplamını almak için kullanılır. Min metodu, belirli bir özelliğin en küçük değerini almak için kullanılır. Max metodu, belirli bir özelliğin en büyük değerini almak için kullanılır. Average metodu belirli bir özelliğin ortalamasını almak için kullanılır. Bu metodlar, LINQ sorguları oluştururken sık sık kullanılmaktadır.
Sum Metodu
LINQ sorguları oluştururken kullanabileceğiniz Sum metodu, belirli bir özellik değerinin toplamını almak için kullanılır. Bu metod, bir koleksiyonun belirli bir özelliği içindeki tüm değerlerin toplamını hesaplamak için oldukça kullanışlıdır. Örneğin, bir alışveriş sepetindeki ürünlerin fiyatları üzerinde toplama işlemi yapmak isteniyorsa, Sum metodu kullanılabilir.
Bir öğrenci koleksiyonundaki öğrencilerin not ortalamalarını hesaplamak için Sum metodu kullanalım.
Öğrenci Adı | Not Ortalaması |
---|---|
Ali | 80 |
Ahmet | 90 |
Mehmet | 75 |
Yukarıdaki öğrenci koleksiyonunda her bir öğrencinin not ortalaması için Sum metodu kullanarak toplam notların ortalama değerini bulabiliriz.
double avgGrade = students.Sum(s => s.Grade) / students.Count();
Burada, students koleksiyonunda bulunan her bir öğrenci için Grade özelliğinin toplamını alacak olan Sum metodu kullanıldı. Ardından, öğrenci sayısı ile bölerek not ortalamasının ortalama değeri hesaplandı. Bu sayede, öğrenci notları toplamının ortalaması elde edildi.
Min Metodu
Min metodu, LINQ sorgularında kullanabileceğiniz bir metottur. Bu metot sayesinde, belirli bir özelliğin en küçük değerini kolayca alabilirsiniz. Örneğin, bir koleksiyondaki müşterilerin yaşlarının en küçük değerini bulmak için Min metodu kullanabilirsiniz.
Bu işlem için, öncelikle belirli bir değişken tanımlamalı ve bu değişkene Min metodu uygulamalısınız. Böylece, belirtilen özellikteki en küçük değer, tanımladığınız değişkende saklanacaktır. Örneğin, customers isimli bir koleksiyonda yer alan müşterilerin yaşlarının en küçük değerini bulmak için aşağıdaki kodu kullanabilirsiniz:
Kod Parçası | Değer |
---|---|
int minAge = customers.Min(c => c.Age); | customers koleksiyonundaki müşterilerin yaşlarının en küçük değeri |
Burada, customers koleksiyonundaki her bir müşteriyi ihtiva eden c değişkeni ile ilgili olarak yaş özelliğinin en küçük değeri, minAge değişkenine atanır. Bu sayede, en küçük yaş değeri, minAge değişkeninde saklanır ve istediğiniz zaman kullanabilirsiniz.
Örnek Kullanım
Min metodu, belirli bir özelliğin en küçük değerini bulmak için kullanılabilir. Özellikle, müşterilerin yaşı gibi küçük değerlerin toplandığı bir koleksiyonda, en küçük yaş değerinin bulunması oldukça kullanışlı olabilir.
Bu örnekte, müşterilerin yaşlarının en küçük değeri, customers adlı bir koleksiyonda depolanmıştır. Min metodu, lambda ifadesi c => c.Age kullanılarak çağrılır. Bu ifade, customers koleksiyonundaki her bir müşteri için yaş özelliğinin değerini belirtir. Min metodu, bu değerlerin en küçük olanını döndürür.
Kod Parçası | Açıklama |
---|---|
int minAge = customers.Min(c => c.Age); | customers koleksiyonundaki her bir müşteri için yaş özelliğinin en küçük değerini minAge değişkeni içinde depolar. |
Örneğin, bir restoranın müşterilerinin yaş ortalamasını hesaplayabilirsiniz. Bunun için, müşterilerin yaşlarını toplamak ve toplamı müşteri sayısına bölerek ortalama değeri bulmanız gerekir. Ancak, önce müşterilerin yaşlarının en küçük olanını bulmanız gerekebilir. Bunu yapmanın en kolay yolu, Min metodu kullanarak koleksiyondaki en küçük değeri bulmaktır.
Kod Parçası:
= int minAge = customers.Min(c => c.Age);
Bu kod parçası, müşterilerin yaşları koleksiyonunda yer alan en küçük yaş değerini minAge isimli değişkene atamak için kullanılır. customers koleksiyonunda her bir müşteri, yaş özelliğine sahip olan c değişkeni ile temsil edilir. c değişkeni, customers koleksiyonundaki her bir müşteri için yaş özelliğinin değerini alır. Min metodu, c değişkenindeki yaş özelliğinin en küçük değerini belirler ve bu değer, minAge değişkeninde saklanır.
Örneğin, aşağıdaki kod parçası, Customer nesnelerinden oluşan bir liste oluşturur ve bu nesnelerin yaş özelliklerinin en küçük değerini bulur:
List<Customer> customers = new List<Customer>(){ new Customer() { Name = "Ahmet", Age = 25 }, new Customer() { Name = "Mehmet", Age = 30 }, new Customer() { Name = "Fatma", Age = 23 }};int minAge = customers.Min(c => c.Age);
Bu örnek kod parçası, en küçük yaşın 23 olduğunu belirler ve minAge değişkeninde saklar. Daha sonra, bu değişken başka bir amaçla kullanılabilir.
Açıklama:
customers koleksiyonunda yer alan her bir müşteri için c değişkeni kullanılarak yaş özelliği seçilir. Daha sonra, bu yaş özelliği üzerinde Min() metodu uygulanarak, customers koleksiyonundaki tüm müşterilerin yaşları arasından en küçük olanı seçilir ve minAge değişkenine atanır.
Örneğin, aşağıdaki tablodaki müşteriler koleksiyonu düşünülebilir:
Customer Name | Age |
---|---|
Ahmet | 25 |
Merve | 29 |
Ali | 21 |
Zeynep | 30 |
Eğer bu koleksiyona Min() metodu uygulanırsa, koleksiyondaki yaşlardan en küçük olanı olan 21 değeri minAge değişkenine atanır.
Max Metodu
LINQ sorgularında en büyük değeri bulmak için kullanabileceğiniz Max metodu oldukça kullanışlıdır. Örneğin, bir personel koleksiyonunda yer alan personellerin maaşlarının en yüksek değerini bulmak için Max metodu kullanılabilir.
Max metodunu kullanarak en yüksek değeri bulmak oldukça basittir. Kullanılacak koleksiyona erişildikten sonra koleksiyonda yer alan her bir özelliğin en yüksek değeri tespit edilir ve bu değer max değişkeni içinde saklanır.
Aşağıdaki örnekte, employees isimli bir koleksiyonda yer alan her bir personel ihtiva eden e değişkeni ile ilgili olarak maaş özelliğinin en yüksek değeri maxSalary değişkeni içinde tutulur.
Kod Parçası | Açıklama |
---|---|
int maxSalary = employees.Max(e => e.Salary); | employees isimli bir koleksiyonda yer alan her bir personel ihtiva eden e değişkeni ile ilgili olarak maaş özelliğinin en yüksek değeri maxSalary değişkeni içinde tutulur. |
Bu şekilde Max metodu, LINQ sorgularında en yüksek değeri kolayca bulmanızı sağlar.
Örnek Kullanım
Max metodu, belirli bir özelliğin en büyük değerini almak için kullanılan etkili bir LINQ metotudur. Personel maaşlarının en yüksek değerini bulmak için Max metodu oldukça kullanışlıdır. Bu örnekte, employees isimli bir koleksiyonda yer alan her bir personel ihtiva eden e değişkeni ile ilgili olarak maaş özelliğinin en yüksek değeri maxSalary değişkeni içinde tutulur.
Örneğimizde, bir şirketin çalışanlarının maaşları örnek olarak alınabilir. Öncelikle employees koleksiyonuna LINQ kullanarak erişiyoruz. Ardından, Max metodu kullanarak en yüksek maaşa sahip çalışanın verilerine erişebiliriz. Max metodu sayesinde, mümkün olan en yüksek maaşa sahip olan çalışanın verilerine kolayca erişebiliriz.
Bu örnekte, Max metodu sayesinde personel maaşlarındaki en yüksek değer bulunmuştur. Benzer şekilde, bir koleksiyonda yer alan diğer özellikler için de Sum, Min ve Average metotları kullanılarak sorgular oluşturulabilir. Bu metotların kullanımı, LINQ sorgularının hızlı bir şekilde oluşturulmasını sağlar ve verilerin işlenmesi sürecini kolaylaştırır.
Kod Parçası:
Yukarıdaki kod parçası, employees adı verilen bir koleksiyonda bulunan her bir personel için maaş özelliğinin en yüksek değerini Max metodu aracılığıyla bulur. Burada e değişkeni, koleksiyondaki her bir personel için kullanılan içinde özelliklerin bulunduğu sınıfı temsil eder.
Max metodu, LINQ sorguları oluştururken oldukça faydalı bir metottur ve bir koleksiyonda bulunan belirli bir özelliğin en yüksek değerini almak için kullanılır. Yukarıdaki kod parçasında, employees koleksiyonundaki her bir personelin maaş özelliği, Lambda ifadesi kullanılarak Max metoduyla kontrol edilir. Bu sayede, employees koleksiyonundaki her bir personelin maaş özelliklerinin en yükseği, maxSalary değişkeni içinde saklanmış olur.
Açıklama:
Açıklama: employees koleksiyonunda yer alan her bir personel nesnesi, e değişkeni kullanılarak belirli bir özelliği üzerinden sorgulanabilir. Bu durumda Max metodu kullandığımızda, maaş özelliği en yüksek olan personel nesnesi seçilir. Seçilen personelin maaş değeri ise maxSalary değişkeni içinde tutulur.
Örnek olarak,
Name | Salary |
---|---|
Ahmet | 5000 |
Mehmet | 7000 |
Ayça | 8000 |
Yukarıdaki tabloda, employees koleksiyonu yer alan personellerin isimleri ve maaşları verilmiştir. Max metodu kullanılarak en yüksek maaşa sahip personel seçilebilir. Bu durumda Ayça isimli personel seçilir ve maaşı olan 8000 maxSalary değişkeninde tutulur.
Average Metodu
Average metodu, LINQ ile bir koleksiyonda bulunan belirli bir özelliğin ortalamasını almak için kullanılır. Bu metot, koleksiyonun özelliği olan bilgiyi sayısal bir değer olarak döndürür. Örneğin, bir ürün koleksiyonunda yer alan fiyat özelliğinin ortalamasını almak için Average metodu kullanılabilir.
Kod parçası olarak, aşağıdaki şekilde kullanılabilir:
Kod Parçası: | double avgPrice = products.Average(p => p.Price); |
---|---|
Açıklama: | products isimli bir koleksiyonda yer alan her bir ürünü ihtiva eden p değişkeni ile ilgili olarak fiyat özelliğinin ortalaması avgPrice değişkeni içinde tutulur. |
Average metodu, koleksiyondaki özellik değerleri için null check yapmak zorunda değilsiniz. Metot, koleksiyonun boş olması durumunda da istisna oluşturmaz, sadece varsayılan bir sayısal değer döndürür. Bu nedenle, kodlarınızda null check yaparak gereksiz bir atama ve akış kontrolü eklemekten kaçınabilirsiniz.
Bununla birlikte, Average metodunun yavaş çalışması mümkündür. Büyük bir veri kümesi içerisindeki bir özelliğin ortalamasını almak için bu metot kullanılırken performans sorunları meydana gelebilir. Bu durumda, daha hızlı çalışan alternatif yöntemler kullanmak gerekebilir.
Örnek Kullanım
Örnek Kullanım bölümünde, Average metodu ile ürünlerin fiyatlarının ortalamasının alınabileceğinden bahsedebiliriz. Bu özellikle, bir e-ticaret sitesinde müşterilerin alışveriş yaparken ürün fiyatlarını karşılaştırmalarında faydalı olabilir.
Bir örnek kod parçası kullanarak, bu metodu nasıl kullanacağımızı gösterebiliriz:
Ad | Fiyat |
---|---|
Ürün 1 | 10 TL |
Ürün 2 | 20 TL |
Ürün 3 | 30 TL |
Yukarıdaki tablodaki ürünlerin fiyatları için, Average metodu aşağıdaki şekilde kullanılabilir:
double ortalamaFiyat = urunler.Average(u => u.Fiyat);
Ürünler listesi için, her bir ürünü u değişkeniyle temsil ediyoruz ve Fiyat özelliğini kullanarak ortalama fiyatı hesaplıyoruz. Bu örnekte, ortalama fiyat 20 TL olacaktır.
Average metodu, bir koleksiyonun belirli bir özelliğinin ortalamasını bulmak için oldukça kullanışlıdır. Bunun yanı sıra, Sum, Min ve Max metotları da koleksiyonlardaki özellik değerlerinin toplamını, en küçük ve en büyük değerlerini bulmak için kullanılabilmektedir.
Kod Parçası:
double avgPrice = products.Average(p => p.Price);
Bu kod bloğu, bir koleksiyonda yer alan tüm ürünlerin fiyatlarının ortalamasını hesaplamak için kullanılır. Örneğin, bir mağazanın envanterindeki tüm ürünlerin fiyatlarını içeren bir koleksiyona sahip olabiliriz ve bu ürünlerin fiyatlarının ortalamasını bulmak için yukarıdaki kodu kullanabiliriz.
Kod Parçası | Açıklama |
---|---|
double | Ortalama değeri tutacak veri tipi |
avgPrice | Hesaplanan ortalama fiyatın tutulacağı değişken |
products | Ürün koleksiyonu |
p => p.Price | Ürün koleksiyonundaki her bir ürün için fiyat özelliğinin alınması |
Yukarıdaki kod parçasında, önce products isimli bir koleksiyonda yer alan her bir ürünü temsil eden p değişkeni oluşturulur. Daha sonra, Average metodu kullanılarak bu ürünlerin fiyat özelliği (p.Price) alınır ve bu değerlerin ortalaması hesaplanır. Sonuç, avgPrice değişkeninde saklanır.
Bu kod örneği, aynı zamanda LINQ sorgularının hem veri sorgulama hem de veri analizi amaçları için nasıl kullanılabileceğini de göstermektedir.
Açıklama:
Average metodu, LINQ sorgularında kullanılan bir metottur ve belirli bir özelliğin ortalamasını almak için kullanılır. Örnek olarak, ürünlerin fiyatlarının ortalamasını almak için Average metodu kullanılabilir.
Örneğin, products isimli bir koleksiyonda yer alan her bir ürünü ihtiva eden p değişkeni ile ilgili olarak fiyat özelliğinin ortalaması avgPrice değişkeni içinde tutulur. Aşağıdaki kod parçası, LINQ sorgularında Average metodunun kullanımına örnek vermektedir:
Kod Parçası: | double avgPrice = products.Average(p => p.Price); |
---|---|
Açıklama: | products koleksiyonu içindeki her bir ürün için fiyat özelliği p değişkeniyle belirtilir ve bu fiyatların ortalaması avgPrice değişkeninde saklanır. |
Yukarıdaki örnekte, LINQ sorgularında Average metodunun nasıl kullanılabileceği ve ürün fiyatlarının kolayca hesaplanabileceği anlatılmaktadır.