التحقق من وجود عنصر
جزء من قسم Logic & Flow في رحلة C# على Coddy — الدرس 59 من 66.
تتحقق الطريقة Contains(element) مما إذا كان عنصر معين موجوداً في الـ HashSet. وهي تعيد القيمة true إذا تم العثور على العنصر، و false بخلاف ذلك.
قم بإنشاء HashSet فارغة:
HashSet<string> fruits = new HashSet<string>();أضف بعض العناصر إلى HashSet:
fruits.Add("Apple");
fruits.Add("Banana");تحقق مما إذا كان العنصر موجوداً:
bool hasApple = fruits.Contains("Apple"); // يعيد true
bool hasOrange = fruits.Contains("Orange"); // يعيد falseيمكنك استخدام النتيجة في الجمل الشرطية:
if (fruits.Contains("Apple"))
{
Console.WriteLine("Apple is in the set");
}التحدي
سهلقم بإنشاء طريقة (method) تسمى ElementExists تأخذ وسيطين:
- HashSet من السلاسل النصية (
set) - سلسلة نصية (
element) للتحقق منها
يجب أن تتحقق الطريقة مما إذا كان العنصر موجوداً في المجموعة وتعيد رسالة نصية:
- إذا كان العنصر موجوداً، فقم بإرجاع "The element 'X' exists in the set"
- إذا لم يكن العنصر موجوداً، فقم بإرجاع "The element 'X' does not exist in the set"
حيث 'X' هي قيمة العنصر الفعلية التي يتم التحقق منها.
جرّب بنفسك
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
public class Program
{
public static string ElementExists(HashSet<string> set, string element)
{
// اكتب الكود الخاص بك هنا
return "";
}
public static void Main()
{
// قراءة السطر الأول للتحقق مما إذا كان بتنسيق JSON
string firstLine = Console.ReadLine();
string elementToCheck = Console.ReadLine();
HashSet<string> set = new HashSet<string>();
// التحقق مما إذا كان الإدخال بتنسيق مصفوفة 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());
}
}
// التحقق مما إذا كان العنصر بتنسيق سلسلة نصية JSON
Match elementMatch = Regex.Match(elementToCheck, @"""([^""]*)""");
if (elementMatch.Success && elementMatch.Groups.Count > 1)
{
elementToCheck = elementMatch.Groups[1].Value;
}
}
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());
}
}
string result = ElementExists(set, elementToCheck);
Console.WriteLine(result);
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
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