حذف عنصر
جزء من قسم المنطق وتدفق التنفيذ في رحلة C# على Coddy. الدرس 58 من 66.
تقوم الطريقة Remove(element) بإزالة العنصر المحدد من الـ HashSet، إذا كان موجوداً. تعيد هذه الطريقة true إذا تمت إزالة العنصر بنجاح، و false إذا لم يتم العثور على العنصر في المجموعة.
قم بإنشاء HashSet فارغة:
HashSet<string> fruits = new HashSet<string>();أضف بعض العناصر إلى المجموعة:
fruits.Add("Apple");
fruits.Add("Banana");
fruits.Add("Cherry");بعد تنفيذ الكود أعلاه، تحتوي المجموعة fruits على:
["Apple", "Banana", "Cherry"]الآن، قم بإزالة "Banana" من المجموعة:
bool wasRemoved = fruits.Remove("Banana");بعد الإزالة، تحتوي المجموعة على:
["Apple", "Cherry"]ستكون قيمة wasRemoved هي true لأنه تم العثور على "Banana" وإزالته.
إذا حاولنا إزالة عنصر غير موجود:
bool wasRemoved = fruits.Remove("Orange");تظل المجموعة دون تغيير، وستكون قيمة wasRemoved هي false.
التحدي
سهلأنشئ طريقة تسمى RemoveElement تأخذ وسيطين:
- HashSet من السلاسل النصية (
set) - سلسلة نصية (
element) لإزالتها
يجب أن تحاول الطريقة إزالة العنصر المحدد من المجموعة. إذا تمت إزالة العنصر بنجاح، اطبع "Element removed: True"، وإلا فاطبع "Element removed: False". ثم، اطبع المجموعة المحدثة في سطر جديد.
جرّب بنفسك
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
public class Program
{
public static void RemoveElement(HashSet<string> set, string element)
{
// اكتب الكود الخاص بك هنا
}
public static void Main()
{
HashSet<string> set = new HashSet<string>();
// قراءة السطر الأول للتحقق مما إذا كان بتنسيق JSON
string firstLine = Console.ReadLine();
string elementToRemove;
// التحقق مما إذا كان الإدخال بتنسيق مصفوفة JSON
if (firstLine != null && firstLine.StartsWith("[") && firstLine.EndsWith("]"))
{
try
{
// استخراج المحتوى بين الأقواس المربعة
string arrayContent = firstLine.Substring(1, firstLine.Length - 2);
// استخدام التعبيرات النمطية (regex) لمطابقة جميع النصوص المقتبسة
MatchCollection matches = Regex.Matches(arrayContent, @"""([^""]*)""");
foreach (Match match in matches)
{
// إضافة المجموعة الملتقطة (بدون علامات الاقتباس)
if (match.Groups.Count > 1)
{
set.Add(match.Groups[1].Value.Trim());
}
}
// قراءة السطر الثاني للعنصر المراد إزالته
string secondLine = Console.ReadLine();
// التحقق مما إذا كان العنصر بتنسيق نص JSON
Match elementMatch = Regex.Match(secondLine, @"""([^""]*)""");
if (elementMatch.Success && elementMatch.Groups.Count > 1)
{
elementToRemove = elementMatch.Groups[1].Value;
}
else
{
elementToRemove = secondLine;
}
}
catch (Exception ex)
{
Console.WriteLine($"Error parsing JSON input: {ex.Message}");
return;
}
}
else
{
// معالجة تنسيق الإدخال التقليدي
string[] elements = firstLine.Split(',');
foreach (string element in elements)
{
set.Add(element.Trim());
}
// قراءة العنصر المراد إزالته بالتنسيق التقليدي
elementToRemove = Console.ReadLine();
}
RemoveElement(set, elementToRemove);
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفق التنفيذ
1المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادتعريف وتهيئة المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفة ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادالمصفوفات المتعرجة (Jagged Arrays)عمليات المصفوفات الشائعةمراجعة - المصفوفات متعددة الأبعاد4تقنيات التحكم في التدفق
الإرجاع المبكرشروط الحمايةجمل القفز (goto)Break و Continueتسطيح الشروط المتداخلة7المعاملات المنطقية المتقدمة
التقييم المختصرالمعاملات المنطقية الشرطيةأولوية المعاملاتمراجعة - المعاملات المتقدمة2اتخاذ القرارات المتقدم
الشروط المتعددةالمنطق البولياني المعقدمقارنة بين If و Switchجمل Switch المتداخلةمراجعة - القرارات المتقدمة5معالجة الاستثناءات
أساسيات Try-Catchأنواع الاستثناءاتكتل Catch المتعددةالتعامل مع الملفاتكتلة FinallyUsing مقابل Try-Finallyاستثناءات مخصصةمراجعة - معالجة الأخطاء8نظام تحليل البيانات
إعداد جمع البياناتمنطق إدخال البيانات11HashSet الجزء الأول
ما هو الـ HashSet؟إضافة عنصرحذف عنصرالتحقق من وجود عنصرالفراغ والحجمملخص - HashSet3تحسينات الحلقات التكرارية
أداء الحلقات التكراريةالتكرار عبر البيانات المعقدةأنواع الحلقات التكراريةإعادة هيكلة الحلقات التكراريةملخص - الحلقات المحسنة6التعامل مع الـ Null
أساسيات الـ Null Referenceأنواع القيم القابلة للـ Nullأنماط التحقق من الـ Nullالبرمجة الدفاعيةملخص - أمان الـ Nullتدرّب بنفسك: مترجم C# عبر الإنترنت