C#

C# Dizi İçerisinde Tekrar Eden Kayıtları Bulma

Herkese merhaba, C# yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda bir dizi içerisinde tekrar eden elemanları bulmayı anlatacağım. Hadi başlayalım !

C# programlama dili, dizileri kolayca işlemek için birçok farklı yöntem sunar. Bu yöntemler arasında, bir dizide tekrar eden kayıtları bulmak da bulunur. Bu makalede, C# dilinde bir dizi içinde tekrar eden kayıtları bulmanın çeşitli yollarını göstereceğim ve her biri için kod örnekleri de vereceğim.

1. Yöntem: Döngü ile Bulma

Bu yöntem, bir döngü kullanarak dizideki her bir elemanın diğer elemanlarla karşılaştırılması yoluyla tekrar eden kayıtların bulunmasını sağlar. Bu yöntem aşağıdaki kod parçasıyla gösterilebilir:

int[] dizi = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4 };
int uzunluk = dizi.Length;

for (int i = 0; i < uzunluk; i++)
{
    for (int j = i + 1; j < uzunluk; j++)
    {
        if (dizi[i] == dizi[j])
            Console.WriteLine("Tekrar Eden Kayıt: " + dizi[j]);
    }
}

Bu kod parçası, “dizi” adlı bir tamsayı dizisi oluşturur ve her bir elemanın diğer elemanlarla karşılaştırılmasını sağlamak için iki for döngüsü kullanır. Döngüler, bir elemanın kendisiyle karşılaştırılmaması için “j = i + 1” satırı ile başlar. Eğer bir tekrar eden kayıt bulunursa, kaydın değeri “Console.WriteLine()” metodu kullanılarak ekrana yazdırılır.

2. Yöntem: Linq Kullanarak Bulma

Bu yöntemde, LINQ (Language Integrated Query) kullanarak tekrar eden kayıtları bulabilirsiniz. LINQ, bir dizi üzerinde veri sorgulama ve işleme işlevselliği sağlayan bir C# özelliğidir. Aşağıdaki kod örneği, bir dizi içindeki tekrar eden kayıtları LINQ kullanarak nasıl bulacağınızı göstermektedir:

int[] dizi = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4 };

var tekrarEdenKayitlar = dizi.GroupBy(x => x).Where(g => g.Count() > 1).Select(y => y.Key);

foreach (var kayit in tekrarEdenKayitlar)
    Console.WriteLine("Tekrar Eden Kayıt: " + kayit);

Bu kod parçası, “dizi” adlı bir tamsayı dizisi oluşturur ve LINQ kullanarak tekrar eden kayıtları bulur. İlk olarak, “dizi” üzerinde bir gruplama işlemi yapılır ve her bir elemanın kaç kez tekrarlandığına bakılır. Daha sonra, tekrar sayısı 1’den büyük olan tüm elemanlar seçilir ve “Select” yöntemiyle yalnızca elemanın kendisi (y.Key) seçilir. Son olarak, “foreach” döngüsü kullanarak tekrar eden kayıtların ekrana yazdırılması sağlanır.

3. Yöntem: Dictionary Kullanarak Bulma

Bu yöntemde, bir Dictionary kullanarak tekrar eden kayıtları bulabilirsiniz. Dictionary, bir anahtar-değer eşleştirme yapısıdır ve her bir anahtarın bir değere karşılık geldiği bir koleksiyondur. Aşağıdaki kod örneği, bir dizi içindeki tekrar eden kayıtları bir Dictionary kullanarak nasıl bulacağınızı göstermektedir:

int[] dizi = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4 };

Dictionary tekrarEdenKayitlar = new Dictionary();

foreach (int kayit in dizi)
{
    if (tekrarEdenKayitlar.ContainsKey(kayit))
        tekrarEdenKayitlar[kayit]++;
    else
        tekrarEdenKayitlar.Add(kayit, 1);
}

foreach (KeyValuePair kvp in tekrarEdenKayitlar)
{
    if (kvp.Value > 1)
        Console.WriteLine("Tekrar Eden Kayıt: " + kvp.Key);
}

Bu kod parçası, “dizi” adlı bir tamsayı dizisi oluşturur ve bir Dictionary (tekrarEdenKayitlar) kullanarak tekrar eden kayıtları bulur. Döngü içinde, her bir elemanın “ContainsKey” yöntemi kullanılarak Dictionary’de olup olmadığı kontrol edilir. Eğer eleman zaten Dictionary’de varsa, sayacı bir arttırılır; yoksa, yeni bir anahtar-değer çifti eklenir. Son olarak, “foreach” döngüsü kullanarak tekrar eden kayıtların ekrana yazdırılması sağlanır.

Ben 3 farklı yöntem söyledim, sizde böyle birşeye ihtiyacınız olduğunda hangisini kullanmak istiyorsanız onu kullanabilirsiniz. Tüm C# yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.

Skorumuz:
Oy Vermek İçin Tıklayın
[Toplam: 3 Ortalama: 2.3]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu