C# ToDictionary Yöntemi

C Todictionary Yontemi



C#'taki ToDictionary işlevi, bir veri koleksiyonunu, varlıkları farklı anahtarlara ve ilgili değerlere eşlemenin açık ve pratik bir yolunu sunan bir sözlüğe dönüştürmenizi sağlayan bir LINQ uzantısı işlevidir. Biri anahtarı seçmek için, diğeri koleksiyondaki her nesnenin değerini seçmek için olmak üzere iki bağımsız değişken, iki temsilci veya lambda ifadesi gerektirir. Bu yazıda ToDictionary fonksiyonunun kullanımlarını göstermek için bazı C# kod örneklerinden yararlanacağız.

Sözdizimi:

C# ToDictionary işlevinin aşağıdaki sözdiziminde sağlanan her bileşeni tek tek inceleyelim ve anlayalım:



dikte edildi = Toplamak. Sözlüğe ( anahtarSeçici , elemanSeçici ) ;
  • Ortaya çıkan “dict” sözlüğünün tür kategorisini tanımlamak için “var” anahtar sözcüğü burada kullanılmamıştır. Çoğu durumda, Dictionary'dir; burada K, anahtarın türü ve V, sözlük değerinin tür kategorisidir.
  • 'Koleksiyon' öğesi, 'dict' sözlüğüne dönüştürmek istediğiniz kaynak koleksiyonunu temsil eder. Liste, dizi veya sorgu sonucu gibi IEnumerable arabirimini uygulayan herhangi bir sınıf olabilir.
  • “keySelector” anahtar sözcüğü, koleksiyondaki her öğeden anahtarın nasıl çıkarılacağını belirten bir temsilci veya lambda ifadesidir. Koleksiyondan bir öğeyi argüman olarak alır ve bu öğenin anahtar değerini geri verir. Sözlüklerde yinelenen anahtarlar bulunamayacağından, anahtar koleksiyondaki her öğe için benzersiz olmalıdır.
  • 'elementSelector' anahtar sözcüğü, koleksiyondaki her öğeden değerin nasıl çıkarılacağını belirten bir temsilci veya lambda ifadesini ifade eder. Ayrıca koleksiyonun bir öğesini argüman olarak alır ve bu öğenin değerini verir.

ToDictionary işlevini çalıştırdıktan sonra, koleksiyondaki her öğenin bir anahtar-değer çifti olarak temsil edildiği yeni bir sözlük nesnesine sahip olacaksınız.







Örnek 1:

Bir kod örneği yardımıyla C#'ta ToDictionary fonksiyonunun kullanımını göstererek bu kılavuza yeni bir başlangıç ​​yapalım. Adım adım üzerinden geçelim.



Kod, gerekli ad alanlarının içe aktarılmasıyla başlar: System, System.Collections.Generic ve System.Linq. Bu ad alanları, koleksiyonlar ve LINQ ile çalışmak için gerekli sınıfları ve uzantı yöntemlerini sağlar. Bu C# programının “Main” metodunu içeren “Dummy” sınıfı tanımlanmıştır.



“Main” metodunun içerisinde “L” isimli bir liste oluşturulur. Bu liste, kullanıcının tercih ettiği farklı parfümlerin adlarını temsil eden üç dize öğesini içerir. ToDictionary yöntemi “L” listesinde çağrılır. Listeyi sözlüğe dönüştürür. Listedeki her dize öğesi, ortaya çıkan sözlükte hem anahtar hem de değer görevi görür.





Sözlük, anahtarların varlığını kontrol ederken öncelikle büyük/küçük harfe duyarlı olmayan bir karşılaştırmayı belirtmek için kullanılan StringComparer.OrdinalIgnoreCase parametresi kullanılarak büyük/küçük harfe duyarlı olmayan bir anahtar karşılaştırmasıyla oluşturulur. Bir “if” ifadesi, sözlüğün büyük/küçük harf durumunu göz ardı ederek “bomba etkisi” anahtarını içerip içermediğini kontrol eder. Anahtar bulunursa “if” bölümündeki kod pasajı işlenecektir. “İf” bloğunun içinde, konsola “Bombshell var” mesajını yazdıran Console.WriteLine(“Bombshell var”) ifadesi yürütülür.

Sistemi kullanma ;

Sistemi kullanarak. Koleksiyonlar . Genel ;

Sistemi kullanarak. Linq ;

sınıf Kukla

{

statik geçersiz Ana ( )

{

Liste < sicim > L = yeni liste < sicim > ( ) { 'Kara Afyon' , 'Bomba' , 'GucciFlora' } ;

parfümdü = L. Sözlüğe ( X => X , X => doğru , StringComparer. OrdinalIgnoreCase ) ;

eğer ( Parfüm. Anahtar İçerir ( 'bomba' ) )

{

Konsol. Yazı çizgisi ( 'Bomba var' ) ;

}

}

}

Sözlük büyük/küçük harfe duyarlı olmayan bir karşılaştırmayla oluşturulduğundan, 'bomba' anahtarı sözlükteki gerçek 'Bombshell' anahtarıyla eşleşir. Sonuç olarak, aşağıdaki ekteki çıktı görüntüsünde gösterildiği gibi konsolda 'Bomba var' mesajı yazdırılır:



Örnek 2:

Önceki kod örneğinde, basit bir koleksiyonun ToDictionary işlevi aracılığıyla nasıl sözlüğe dönüştürülebileceğini gösterdik. Şimdi, C# ToDictionary fonksiyonunun kullanımlarını göstermek için C#'ın biraz gelişmiş kod örneğine doğru ilerleyeceğiz. Kodu satır satır inceleyelim.

Bu örnek kod parçacığı aynı zorunlu ad alanlarının getirilmesiyle başlar: System, System.Collections.Generic ve System.Linq. Bu ad alanları, bu kod örneği için koleksiyonlarla ve LINQ ile çalışmak üzere gerekli sınıfları ve uzantı yöntemlerini sağlar. Giriş noktası olan “Dummy” sınıfı tanımlanır.

C# dilinin “Main” metodu içerisinde “L” isimli bir liste oluşturulur. Bu liste, farklı kozmetik ürünlerini fiyatları ve markalarıyla temsil eden “Veri” sınıfının üç nesnesini içerir. Her veri nesnesi, nesne başlatıcı sözdizimi kullanılarak başlatılır. Her objenin “Fiyat” ve “Marka” özellikleri belirli değerlerle ayarlanır.

İşte ToDictionary yöntemi geliyor. Burada “L” listesinde denir. Listeyi anahtar olarak “Fiyat” özelliğinin, değer olarak ise “Marka” özelliğinin kullanıldığı bir sözlüğe dönüştürür. Ortaya çıkan sözlük, aşağıda verilen kod parçacığında belirtildiği gibi 'Dic' değişkenine atanır. Bir “foreach” döngüsü, “Dic” sözlüğündeki anahtar/değer çiftleri üzerinden çağrılmak üzere kullanılır.

Döngü içerisinde her bir çiftin anahtarına ve değerine KeyValuePair yapısının “Key” ve “Value” özellikleri kullanılarak erişilir. Console.WriteLine işlev ifadesi her anahtar/değer çiftini konsola yazdırır. Çıktı, fiyat ve marka bilgilerini ayrı ayrı görüntülemek için dize enterpolasyonu kullanılarak biçimlendirilir.

Burada “Veri” sınıfı iki özellikle tanımlanıyor: “Fiyat” (bir kozmetik ürünün fiyatını temsil eden bir tamsayı) ve “Marka” (bir ürünün marka adını temsil eden bir dize).

Sistemi kullanma ;

Sistemi kullanarak. Koleksiyonlar . Genel ;

Sistemi kullanarak. Linq ;

sınıf Kukla

{

statik geçersiz Ana ( )

{

Liste < Veri > L = yeni liste < Veri > ( )

{

yeni veri { Fiyat = 13000 , Marka = 'Hüda Güzeli' } ,

yeni veri { Fiyat = 15000 , Marka = 'Charlotte Telburry' } ,

yeni veri { Fiyat = 11000 , Marka = 'Nars' }

} ;

Sözlük < int , sicim > Aralık = L. Sözlüğe ( P => P. Fiyat , P => P. Marka ) ;

her biri için ( Dic'te var v )

{

Konsol. Yazı çizgisi ( $ 'Fiyat: {v.Key}, Marka: {v.Value}' ) ;

}

}

}

sınıf Verileri

{

halk int Fiyat { elde etmek ; ayarlamak ; }

halka açık dize Marka { elde etmek ; ayarlamak ; }

}

Kod yürütüldüğünde, veri nesnelerinin bir listesini oluşturur, listeyi ToDictionary yöntemini kullanarak bir sözlüğe dönüştürür ve ardından 'foreach' döngüsünü kullanarak sözlüğün anahtar/değer çiftlerini görüntüler.

Bu kod örneğinin çıktısı aşağıda verilmiştir. Belirli özelliklere göre sözlükte saklanan kozmetik ürünlerinin fiyatlarını ve markalarını gösterir ve anahtar/değer çiftleri halinde verilere erişmenin ve düzenlemenin kolay bir yolunu sunar. Önceki kodun çıktısı sözlük için üç kayıt gösterir:

Çözüm

Bu C# kılavuzu, bazı temel ve kesin kod çizimleriyle C# ToDictionary yönteminin kullanımını gösterdi. Anahtar/değer çiftlerini tanımlamak için açık ve etkileyici bir mekanizma sunan ToDictionary yöntemi, bir koleksiyonun sözlüğe dönüştürülmesini kolaylaştırır. Verileri işlemek ve dönüştürmek için güçlü bir C# yardımcı programıdır.