البرمجة

استخدام HashSet في C# للبحث وتصحيح حالة السلاسل

عندما نتحدث عن لغة البرمجة C# وكيفية تصحيح حالة السلاسل باستخدام HashSet، يتعين علينا النظر في كيفية تحديد القيم المطابقة في حالة حساسة وغير حساسة للحروف. في المثال الذي طرحته، لدينا HashSet باستخدام StringComparer.OrdinalIgnoreCase، مما يعني أنه يتم تجاوز حساسية الحالة أثناء إضافة القيم إلى المجموعة وأثناء البحث فيها.

لنقم أولاً بفهم كيف يمكننا استخدام هذا HashSet للبحث عن القيم بحيث تكون حساسة لحالة الأحرف. لدينا HashSet الذي يحتوي على الأسماء “Alice”, “Bob”, و”Charles”. إذا كنت تريد البحث عن القيمة المطابقة لسلسلة “aLICe”، يمكنك استخدام الدالة Contains لفحص وجود السلسلة في المجموعة. على سبيل المثال:

csharp
string searchName = "aLICe"; if (names.Contains(searchName)) { // تم العثور على القيمة المطابقة Console.WriteLine($"القيمة المطابقة لـ '{searchName}' هي: {searchName}"); } else { // لم يتم العثور على القيمة المطابقة Console.WriteLine($"لم يتم العثور على قيمة مطابقة لـ '{searchName}'"); }

يجب أن ترى أن الدالة Contains تتعامل بشكل صحيح مع حالة الأحرف بفضل StringComparer.OrdinalIgnoreCase الذي استخدمناه عند إنشاء HashSet.

الآن، إذا كنت ترغب في تصحيح حالة السلسلة إلى الحالة الصحيحة (في هذه الحالة، تحويل “aLICe” إلى “Alice”)، يمكنك استخدام الدالة ToLower() لتحويل السلسلة إلى حالة صغيرة كمرجع، مما يضمن توافقها مع الحالة المخزنة في HashSet:

csharp
string searchName = "aLICe"; string correctedName = names.FirstOrDefault(name => name.Equals(searchName, StringComparison.OrdinalIgnoreCase)); if (correctedName != null) { // تم العثور على القيمة المصححة Console.WriteLine($"القيمة المصححة لـ '{searchName}' هي: {correctedName}"); } else { // لم يتم العثور على القيمة المطابقة Console.WriteLine($"لم يتم العثور على قيمة مصححة لـ '{searchName}'"); }

يستخدم هذا الكود الدالة FirstOrDefault للبحث عن القيمة المطابقة بحساسية للحالة في HashSet ويقوم بتصحيح الحالة إذا تم العثور على القيمة.

المزيد من المعلومات

بالطبع، دعنا نستكشف المزيد من المعلومات حول كيفية استخدام HashSet في C# وتصحيح حالة السلاسل.

إن HashSet هو هيكل بيانات في C# يُستخدم لتخزين مجموعة من العناصر بحيث لا تحتوي على عناصر مكررة. يتميز HashSet بفعاليته في البحث عن العناصر وعمليات الإضافة والحذف. في المثال الذي قدمته، قمنا بإنشاء HashSet مع تكامل StringComparer.OrdinalIgnoreCase، الذي يجعل البحث في القيم حساسًا لحالة الأحرف.

عند استخدام HashSet مع StringComparer.OrdinalIgnoreCase، يكون البحث في القيم بحيث لا يتم اعتبار الحروف كبيرة أو صغيرة. هذا يساعد في تحقيق البحث الفعال والدقيق في السلاسل دون الحاجة إلى الاهتمام بحالة الأحرف.

بالنسبة لتصحيح حالة السلسلة، استخدمنا دالة ToLower() لتحويل السلسلة إلى حالة صغيرة، مما يتيح لنا توافقها مع القيم المخزنة في HashSet بشكل صحيح.

كما يمكنك توسيع استخدام HashSet للعديد من السيناريوهات، مثل فحص الاختيارات المتاحة أو التحقق من فريدية العناصر. يعد HashSet أداة قوية في بيئة C# لتحسين أداء البحث والتحقق من تكرار العناصر.

لاحظ أنه يمكن أيضاً استخدام دوال أخرى مثل ToUpper() لتحويل السلسلة إلى حالة كبيرة إذا كان ذلك يتناسب مع احتياجات تطبيقك المحددة.

زر الذهاب إلى الأعلى