طريقة C# ToDictionary

Tryqt C Todictionary



وظيفة ToDictionary في C# هي وظيفة امتداد LINQ تمكنك من تحويل مجموعة البيانات إلى قاموس يوفر طريقة واضحة وعملية لتعيين الكيانات لمفاتيح مميزة وقيم ذات صلة. ويتطلب ذلك وسيطتين، أو مندوبين أو تعبيرات لامدا، واحدة لاختيار المفتاح وأخرى إضافية لاختيار القيمة لكل كائن في المجموعة. في هذه المقالة، سوف نستخدم بعض أمثلة التعليمات البرمجية لـ C# لتوضيح استخدامات وظيفة ToDictionary.

بناء الجملة:

دعونا نقسم ونفهم كل مكون يتم توفيره ضمن بناء الجملة التالي لوظيفة C# ToDictionary واحدًا تلو الآخر:



كان إملاء = مجموعة. إلى القاموس ( keySelector , elementSelector ) ;
  • تم حذف الكلمة الأساسية 'var' هنا لتحديد فئة النوع لقاموس 'dict' الناتج. في معظم الحالات، يكون القاموس حيث K هو نوع المفتاح وV هي فئة النوع لقيمة القاموس.
  • يمثل عنصر 'المجموعة' المجموعة المصدر التي تريد تحويلها إلى قاموس 'ديكت'. يمكن أن يكون أي فئة تطبق الواجهة IEnumerable مثل القائمة أو المصفوفة أو نتيجة الاستعلام.
  • الكلمة الأساسية 'keySelector' هي تعبير مندوب أو تعبير لامدا يحدد كيفية استخراج المفتاح من كل عنصر في المجموعة. يحصل على عنصر من المجموعة كوسيطة ويعيد القيمة الأساسية لهذا العنصر. يجب أن يكون المفتاح فريدًا لكل عنصر في المجموعة، حيث لا يمكن أن تحتوي القواميس على مفاتيح مكررة.
  • تشير الكلمة الأساسية 'elementSelector' إلى تعبير المفوض أو تعبير lambda الذي يحدد كيفية استخراج القيمة من كل عنصر في المجموعة. كما أنه يحصل على عنصر من المجموعة كوسيطة وينتج قيمة هذا العنصر.

بعد تنفيذ وظيفة ToDictionary، سيكون لديك كائن قاموس جديد حيث يتم تمثيل كل عنصر من المجموعة كزوج قيمة المفتاح.







مثال 1:

لنبدأ بداية جديدة في هذا الدليل من خلال توضيح استخدام وظيفة ToDictionary في لغة C# بمساعدة مثال التعليمات البرمجية. دعنا نتناول الأمر خطوة بخطوة.



يبدأ الكود باستيراد مساحات الأسماء المطلوبة: System، وSystem.Collections.Generic، وSystem.Linq. توفر مساحات الأسماء هذه الفئات وطرق الامتداد اللازمة للعمل مع المجموعات وLINQ. يتم تعريف الفئة 'الدمية' التي تحتوي على الطريقة 'الرئيسية' لبرنامج C# هذا.



داخل الطريقة 'الرئيسية'، يتم إنشاء قائمة تسمى 'L'. تحتوي هذه القائمة على ثلاثة عناصر متسلسلة تمثل أسماء العطور المختلفة التي يختارها المستخدم. يتم استدعاء أسلوب ToDictionary في القائمة 'L'. يقوم بتحويل القائمة إلى قاموس. يعمل كل عنصر سلسلة في القائمة كمفتاح وقيمة في القاموس الناتج.





يتم إنشاء القاموس باستخدام مقارنة مفاتيح غير حساسة لحالة الأحرف باستخدام المعلمة StringComparer.OrdinalIgnoreCase والتي تُستخدم بشكل أساسي لتحديد مقارنة غير حساسة لحالة الأحرف عند التحقق من وجود المفاتيح. تتحقق عبارة 'if' مما إذا كان القاموس يحتوي على مفتاح 'bombshell' مع تجاهل حالة الأحرف الخاصة به. إذا تم العثور على المفتاح، فستتم معالجة مقتطف الشفرة الموجود في قسم 'if'. داخل الكتلة 'if'، يتم تنفيذ عبارة Console.WriteLine('Bombshell موجودة') والتي تطبع رسالة 'Bombshell موجودة' إلى وحدة التحكم.

باستخدام النظام ;

باستخدام النظام. المجموعات . نوعي ;

باستخدام النظام. لينك ;

دمية الطبقة

{

ثابتة فارغ رئيسي ( )

{

قائمة < خيط > ل = قائمة جديدة < خيط > ( ) { 'الأفيون الأسود' , 'قنبلة' , 'غوتشي فلورا' } ;

كان عطر = ل. إلى القاموس ( س => س , س => حقيقي , StringComparer. OrdinalIgnoreCase ) ;

لو ( عطر. يحتوي علىمفتاح ( 'قنبلة' ) )

{

وحدة التحكم. خط الكتابة ( 'القنبلة موجودة' ) ;

}

}

}

نظرًا لأن القاموس تم إنشاؤه باستخدام مقارنة غير حساسة لحالة الأحرف، فإن مفتاح 'bombshell' يطابق مفتاح 'Bombshell' الفعلي في القاموس. ونتيجة لذلك، تتم طباعة رسالة 'Bombshell موجود' على وحدة التحكم كما هو معروض في صورة الإخراج المرفقة التالية:



مثال 2:

في مثال التعليمات البرمجية السابق، أوضحنا كيف يمكن تحويل مجموعة بسيطة إلى قاموس عبر وظيفة ToDictionary. الآن، سوف ننتقل إلى مثال تعليمة برمجية متقدمة قليلاً لـ C# لتوضيح استخدامات وظيفة C# ToDictionary. دعونا نحلل الكود سطرا تلو الآخر.

يبدأ مقتطف التعليمات البرمجية التوضيحية هذا بإحضار نفس مساحات الأسماء الإجبارية: System وSystem.Collections.Generic وSystem.Linq. توفر مساحات الأسماء هذه الفئات وطرق الامتداد المطلوبة للعمل مع المجموعات وLINQ لمثال التعليمات البرمجية هذا. يتم تعريف الفئة 'الدمية' وهي نقطة الدخول.

داخل الطريقة 'الرئيسية' للغة C#، يتم تشكيل قائمة تسمى 'L'. تحتوي هذه القائمة على ثلاثة عناصر من فئة 'البيانات' والتي تمثل منتجات التجميل المختلفة بأسعارها وعلاماتها التجارية. تتم تهيئة كل كائن بيانات باستخدام بناء جملة مُهيئ الكائن. يتم تعيين خصائص 'السعر' و'العلامة التجارية' لكل كائن بقيم محددة.

هنا تأتي طريقة ToDictionary. يطلق عليه هنا في القائمة 'L'. يقوم بتحويل القائمة إلى قاموس حيث يتم استخدام خاصية 'السعر' كمفتاح ويتم استخدام خاصية 'العلامة التجارية' كقيمة. يتم تعيين القاموس الناتج للمتغير 'Dic' كما هو مذكور في مقتطف التعليمات البرمجية المقدم التالي. يتم إطلاق حلقة 'foreach' لاستدعاء أزواج القيمة الرئيسية في قاموس 'Dic'.

داخل الحلقة، يتم الوصول إلى المفتاح والقيمة لكل زوج باستخدام خصائص 'المفتاح' و'القيمة' في بنية KeyValuePair. يقوم بيان الدالة Console.WriteLine بطباعة كل زوج من قيمة المفتاح إلى وحدة التحكم. يتم تنسيق الإخراج باستخدام استيفاء السلسلة لعرض معلومات السعر والعلامة التجارية بشكل منفصل.

هنا، يتم تعريف فئة 'البيانات' بخاصيتين: 'السعر' (عدد صحيح يمثل سعر منتج مستحضرات التجميل) و'العلامة التجارية' (سلسلة تمثل اسم العلامة التجارية للمنتج).

باستخدام النظام ;

باستخدام النظام. المجموعات . نوعي ;

باستخدام النظام. لينك ;

دمية الطبقة

{

ثابتة فارغ رئيسي ( )

{

قائمة < بيانات > ل = قائمة جديدة < بيانات > ( )

{

بيانات جديدة { سعر = 13000 , ماركة = 'هدى بيوتي' } ,

بيانات جديدة { سعر = 15000 , ماركة = 'شارلوت تيلبيري' } ,

بيانات جديدة { سعر = 11000 , ماركة = 'نارس' }

} ;

قاموس < كثافة العمليات , خيط > ديسمبر = ل. إلى القاموس ( ص => ص. سعر , ص => ص. ماركة ) ;

com.foreach ( فار الخامس في مدينة نيويورك )

{

وحدة التحكم. خط الكتابة ( $ 'السعر: {v.Key}، العلامة التجارية: {v.Value}' ) ;

}

}

}

بيانات الطبقة

{

عام كثافة العمليات سعر { يحصل ; تعيين ; }

العلامة التجارية للسلسلة العامة { يحصل ; تعيين ; }

}

عند تنفيذ التعليمات البرمجية، فإنه ينشئ قائمة بكائنات البيانات، ويحول القائمة إلى قاموس باستخدام طريقة ToDictionary، ثم يعرض أزواج القيمة الرئيسية للقاموس باستخدام حلقة 'foreach'.

يتم توفير الإخراج لهذا المثال التعليمات البرمجية في ما يلي. فهو يعرض الأسعار والعلامات التجارية لمنتجات مستحضرات التجميل المخزنة في القاموس بناءً على خصائص محددة، مما يوفر طريقة ملائمة لتنظيم البيانات والوصول إليها في أزواج ذات قيمة أساسية. يُظهر مخرج الكود السابق ثلاثة سجلات للقاموس:

خاتمة

يوضح دليل C# هذا استخدام طريقة C# ToDictionary من خلال بعض الرسوم التوضيحية الأساسية والدقيقة للتعليمات البرمجية. من خلال تقديم آلية واضحة ومعبرة لوصف أزواج القيمة الرئيسية، تسهل طريقة ToDictionary تحويل المجموعة إلى قاموس. إنها أداة مساعدة قوية في C# لمعالجة البيانات وتحويلها.