בדיקה אם איבר קיים
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-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");
}אתגר
קלצרו מתודה בשם 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);
// השתמשו בביטוי רגולרי כדי למצוא את כל המחרוזות שבמירכאות
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);
}
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1מערכים רב־ממדיים
יסודות מערכים דו־ממדייםהכרזה ואתחול של מערכים דו־ממדייםגישה לאיברי מערך דו־ממדילולאות מקוננות עם מערכים דו־ממדייםמערכים משונניםפעולות מטריצה נפוצותחזרה – מערכים רב־ממדיים7אופרטורים לוגיים מתקדמים
הערכה בקיצור דרךאופרטורים לוגיים מותניםקדימות אופרטוריםסיכום – אופרטורים מתקדמים2קבלת החלטות מתקדמת
תנאים מרוביםלוגיקה בוליאנית מורכבתהשוואה בין If ל-Switchהצהרות Switch מקוננותסיכום — קבלת החלטות מתקדמת5טיפול בחריגות
יסודות try-catchסוגי חריגותבלוקי catch מרוביםעבודה עם קבציםבלוק finallyשימוש ב-using לעומת try-finallyחריגות מותאמות אישיתסיכום – טיפול בשגיאות3שיפורים בלולאות
ביצועי לולאותאיטרציה במבנים מורכביםכל אחד מסוגי הלולאותרפקטורינג של לולאותסיכום – לולאות שעברו אופטימיזציה6טיפול בערכי Null
יסודות הפניה ל-Nullטיפוסי ערכים שניתנים ל-Nullדפוסי בדיקת Nullתכנות הגנתיסיכום – בטיחות מול Nullתרגלו בעצמכם: קומפיילר C# אונליין