التحقق من وجود عنصر
جزء من قسم 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' هي قيمة العنصر الفعلية التي يتم التحقق منها.
ورقة مرجعية
تتحقق الطريقة 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");
}جرّب بنفسك
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