C# Tekrar Eden Kayıtları Kaldırma

Bu yazımda C# ile elemanlar içerisinde tekrar eden kayıtları kaldırarak, tek bir liste halinde gösterme işleminin kodunuz yazıp anlatacağım.

 

Örnek vermek gerekirse, “1,2,3,4,4,5,2,3,5,5,6,1,7” gibi elemanlarımızdan tekrar eden sayıları çıkarırsak, listemizin son hali, “1,2,3,4,5,6,7” olacaktır.
Veya başka bir örnek vermek gerekirse, “Mehmet, Ayşe, Ali, Zeynep, Mehmet, Zeynep” listesinde tekrar eden isimler Mehmet ve Zeynep olarak görünmekte. Bu tekrar eden isimleri de çıkarmak gerekirse, listenin tekrarsız hali “Mehmet, Ayşe, Ali, Zeynep” olacaktır.

Şimdi gelelim bu ve buna benzer tekrarlı kayıtların olduğu örnekleri C# ile nasıl tekil hale getireceğimizi inceleyelim.

string[] stringArray = { "Mehmet","Ayşe","Ali","Zeynep","Mehmet","Zeynep" };
string[] uniqueListString = stringArray.Distinct().ToArray();

int[] intArray = { 1, 2, 3, 4, 4, 5, 2, 3, 5, 5, 6, 1, 7 };          
List<int> uniqueListInt = intArray.Distinct().ToList();

uniqueListInt.ForEach(i => Console.WriteLine($"{i}")); // Yöntem 1

StringBuilder ekle = new StringBuilder();
foreach (string item in uniqueListString)
{
    // Yöntem 2
    ekle.Append(item + ",");
}
//for (int i = 0; i < uniqueListInt.Count; i++)
//{
//    // Yöntem 3
//    ekle.Append(uniqueListInt[i] + ",");
//}

//Sondaki virgülü silmek için 1.yöntem
Console.WriteLine(ekle.Remove(ekle.Length - 1, 1));

//Sondaki virgülü silmek için 2.yöntem
//Console.WriteLine(ekle.Remove(ekle.ToString().LastIndexOf(','), 1));
Console.ReadLine();

Burada hem string array hem de int array olmak üzere 2 farklı array oluşturup, ikisi için de farklı listeleme yöntemleri kullanarak tekrarlı kayıtları nasıl silebiliriz bunları göstermeye çalıştım.

 

Ek olarak aşağıdaki yöntem ise, dizideki elemanların o dizi içerisinde kaç kez tekrarlandığını gösterir. Ek bir kod parçası olarak eklemek istedim.

int[] array = { 1, 2, 3, 4, 4, 5, 2, 3, 5, 5, 6, 1, 7 };
var dict = new Dictionary<int, int>();
foreach (var value in array)
{
    if (dict.ContainsKey(value))
        dict[value]++;
    else
        dict[value] = 1;
}
foreach (var pair in dict)
    Console.WriteLine("{0} değeri {1} kez.", pair.Key, pair.Value);
Console.ReadLine();

 

Anlatacaklarım bu kadar arkadaşlar, soru ya da fikirlerinizi yorum kısmına yazarsanız sevinirim.

 

Bir cevap yazın

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