C# Dizideki Elemanların Sayısını Bulma

Php ile array_count_values metoduyla kolaylıkla dizi elemen sayılarını bulabilmekteyken c# içerisinde buna benzer metod bulunmamaktadır. Php’deki bu metodun yerine kullanılabilecek farklı metodları bu yazımda sizlere aktarmaya çalışacağım.

Öncelikle array_count_values metodu ne işe yarar? Bundan kısaca bahsetmek gerekirse bu metad bir dizideki eleman sayılarını bize vermekte.

<?php
$array = array(1, "hello", 1, "world", "hello");
print_r(array_count_values($array));
?>

Yukarıdaki gibi bir kullanımda ekrana fonksiyonun çalışması neticesinde alınacak çıktı aşağıdaki gibi olacaktır.

Array
(
    [1] => 2
    [hello] => 2
    [world] => 1
)

Bu fonksiyonu direkt olarak karşılayan bir c# metodu olmamakla birlikte oldukça basit yöntemlerle bu PHP metoduyla aynı işi yapabilen kendi mettodlarımızı oluşturabiliriz.

object[] myArray = { 1, 1, 2, 3, 3, 5 };
Dictionary<object, int> valueCount = new Dictionary<object, int>();
foreach (object obj in myArray)
{
    if (valueCount.ContainsKey(obj))
        valueCount[obj]++;
    else
        valueCount[obj] = 1;
}

Yukarıda dictionary sınıfını kullanarak basit bir şekilde dizinin elemanlarının tekrar sayılarını hesaplabililiyor ve başka bir diziye aktarıyoruz.

Bu da başka bir c# yöntemi aynı işi görmekte.

public static Dictionary<dynamic, int> Count(dynamic[] array) 
  {

   Dictionary<dynamic, int> counts = new Dictionary<dynamic, int>();

   foreach(var item in array) {

    if (!counts.ContainsKey(item)) {
     counts.Add(item, 1);
    } else {
     counts[item]++;
    }


   }

  return counts;    
  }

Bir önceki yazımız olan Yazılım sürecinde test etme ve kullanılabilirlik. başlıklı makalemizde algoritma, kiss ve yazılım süreci hakkında bilgiler verilmektedir.

Bir cevap yazın

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.