Takip et

.NET 6’da C# DistinctBy: Nesne Listelerinde Tekrar Eden Değerleri Kaldırma

.NET 6’da C# DistinctBy: Nesne Listelerinde Tekrar Eden Değerleri Kaldırma

Merhaba, bu makalede .NET 6 ile C# kullanarak nesne listelerinde tekrar eden değerleri kaldırmak için **DistinctBy** yöntemi üzerinde duracağız. Bu yöntem, nesnelerin belirli bir özelliğine göre benzersiz değerleri filtrelemenizi sağlayarak verileri temizlemenin ve optimize etmenin etkili bir yolunu sunar.

DistinctBy Yöntemi: Tekrar Eden Değerleri Kaldırma

Bir nesne listesinde tekrar eden değerleri ele almak istediğimiz zaman, standart **Distinct** yöntemi bize yardımcı olmaz. Çünkü **Distinct** yöntemini kullandığımızda, nesnelerin tamamının benzersiz olması beklenir. Ancak, biz yalnızca belirli bir özelliğe göre benzersizliği sağlamak istiyoruz. İşte tam burada **DistinctBy** devreye giriyor.

**DistinctBy** yöntemi, **MoreLinq** kütüphanesi tarafından sağlanan kullanışlı bir uzantı yöntemidir. Bu kütüphane, LINQ’ya ek işlevsellik ekleyerek daha da güçlü hale getirir. **DistinctBy** ile, bir nesne listesindeki belirli bir özelliğe göre tekrar eden değerleri filtreleyebilir ve sadece benzersiz değerleri içeren yeni bir liste oluşturabiliriz.

Örnek Kullanım

Örneğin, bir ürün listesinde, **ÜrünAdı** özelliğine göre benzersiz ürünleri bulmak isteyelim. **DistinctBy** kullanarak, ürünlerin **ÜrünAdı** özelliklerine göre benzersiz hale getirilmesini sağlayabiliriz.

“`csharp
using MoreLinq;

public class Product
{
public int Id { get; set; }
public string ProductName { get; set; }
public decimal Price { get; set; }
}

public class Example
{
public static void Main(string[] args)
{
// Ürün listesi oluşturma
List products = new List()
{
new Product { Id = 1, ProductName = “Laptop”, Price = 1500 },
new Product { Id = 2, ProductName = “Mouse”, Price = 25 },
new Product { Id = 3, ProductName = “Keyboard”, Price = 50 },
new Product { Id = 4, ProductName = “Laptop”, Price = 1700 }, // Aynı isimde bir ürün daha
new Product { Id = 5, ProductName = “Monitor”, Price = 200 },
new Product { Id = 6, ProductName = “Mouse”, Price = 30 }, // Aynı isimde bir ürün daha
};

// Ürün isimlerine göre benzersiz ürünleri bulma
IEnumerable distinctProducts = products.DistinctBy(p => p.ProductName);

// Sonuçları yazdırma
foreach (Product product in distinctProducts)
{
Console.WriteLine($”Id: {product.Id}, Ürün Adı: {product.ProductName}, Fiyat: {product.Price}”);
}
}
}
“`

Bu örnekte, **DistinctBy** yöntemine **ProductName** özelliğini girdik. Bu, **products** listesini **ProductName** özelliği baz alınarak benzersiz hale getirir. Sonuç olarak, sadece farklı ürün isimlerine sahip ürünler **distinctProducts** listesine eklenecektir.

MoreLinq Kütüphanesi

**DistinctBy** yöntemini kullanabilmek için **MoreLinq** kütüphanesini projenize eklemeniz gerekir. Bu kütüphaneyi **NuGet** paket yöneticisi aracılığıyla kolayca kurabilirsiniz. Projenizi sağ tıklayarak **Manage NuGet Packages…** seçeneğini seçin ve **MoreLinq** paketini arayın. **Install** düğmesine tıklayarak kütüphaneyi projenize ekleyebilirsiniz.

MoreLinq kütüphanesi, LINQ’ya ek işlevsellik ekleyerek daha da güçlü hale getirir. Ayrıca **DistinctBy**’dan başka, **SkipWhile**, **TakeWhile**, **ForEach** gibi birçok faydalı yöntem sunar. Bu kütüphane, kodunuzu daha temiz ve öz hale getirmenize yardımcı olabilir. [MoreLinq Kütüphanesi](https://morelinq.github.io/) hakkında daha fazla bilgi için ilgili web sitesini ziyaret edebilirsiniz.

Sonuç

**DistinctBy** yöntemi, nesne listelerinde tekrar eden değerleri kaldırmak için kullanışlı bir araçtır. Bu yöntem, belirli bir özelliğe göre benzersizliği sağlamakta oldukça etkilidir. Daha karmaşık işlemleri basitleştirmek için **MoreLinq** kütüphanesini kullanmak, kodunuzu daha temiz ve okunabilir hale getirebilir.

**DistinctBy** ile, verilerinizi temizleyebilir ve optimize edebilirsiniz. Ayrıca **DistinctBy** yöntemini kullanarak, uygulamanızda performans iyileştirmeleri sağlayabilirsiniz. Bu yöntem, büyük veri kümeleri üzerinde çalışırken özellikle faydalıdır.

Unutmayın, daha fazla bilgi ve örnek için [fatihsoysal.com](https://fatihsoysal.com) web sitesini ziyaret edebilirsiniz.

## Etiketler
#DistinctBy #C# #.NET #MoreLinq #TekrarEdenDeğerleriKaldırma #VeriTemizleme #OptimizeEtme #LINQ #KodOptimizasyonu #Programlama

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.