Clear        


                
                    namespace _20_DictionaryCollectionType.Demos
{
    public class TurkceHarfleriIngilizceyeDonusturmeDemo
    {
        #region I) Türkçe Harfleri İngilizce'ye Dönüştürme Demo'yu Çalıştıran Method
        public void Calistir()
        {
            string giris, sonuc;

            Console.Write("\nTürkçe cümle giriniz: ");
            giris = Console.ReadLine();

            sonuc = IngilizceyeDonustur(giris);

            Console.WriteLine("Türkçe cümle: " + giris);
            Console.WriteLine("İngilizce cümle: " + sonuc);
        }
        #endregion



        #region II) Türkçe Harfleri İngilizce'ye Dönüştürme Demo Alanları
        // Neşe
        // sınıf altında referans değişkenleri üzerinden objeler default constructor'ları kullanılarak new'lenebilir
        Dictionary<string, string> harfSozlugu = new Dictionary<string, string>()
        {
            { "Ö", "O" },
            { "Ç", "C" },
            { "Ş", "S" },
            { "Ğ", "G" },
            { "Ü", "U" },
            { "ö", "o" },
            { "ç", "c" },
            { "ş", "s" },
            { "ğ", "g" },
            { "ü", "u" },
            { "İ", "I" },
            { "ı", "i" }
        };
        #endregion



        #region III) Türkçe Harfleri İngilizce'ye Dönüştürme Demo Davranışları
        /// <summary>
        /// Parametre olarak aldığı Türkçe cümle içerisindeki Türkçe harfleri İngilizce karşılıklarıyla değiştirip dönen method.
        /// </summary>
        /// <param name="turkceCumle"></param>
        /// <returns>string</returns>
        string IngilizceyeDonustur(string turkceCumle)
        {
            string ingilizceCümle = "";

            foreach (char harf in turkceCumle) // parametre olarak gönderilen Türkçe cümledeki her bir harf için
            {
                if (harfSozlugu.ContainsKey(harf.ToString())) // eğer dictionary'de döngü turundaki harfe karşılık anahtar varsa
                {
                    ingilizceCümle += harfSozlugu[harf.ToString()]; // anahtara karşılık değeri ingilizceCumle değişkenine concatenate et
                }
                else // eğer dictionary'de döngü turundaki harfe karşılık anahtar yoksa
                {
                    ingilizceCümle += harf.ToString(); // döngü turundaki harfi ingilizceCumle değişkenine concatenate et
                }
            }

            return ingilizceCümle;
        }
        #endregion
    }
}