Checking if an Element Exists
Часть раздела Логика и управление потоком путешествия по 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' — это фактическое значение проверяемого элемента.
Шпаргалка
Метод Contains(element) проверяет, существует ли конкретный элемент в HashSet. Он возвращает true, если элемент найден, и false в противном случае.
Создайте пустой HashSet:
HashSet<string> fruits = new HashSet<string>();Добавьте элементы в HashSet:
fruits.Add("Apple");
fruits.Add("Banana");Проверьте, существует ли элемент:
bool hasApple = fruits.Contains("Apple"); // Returns true
bool hasOrange = fruits.Contains("Orange"); // Returns 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);
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Multi-dimensional Arrays
2D Arrays BasicsDeclaring and Initializing 2DAccessing 2D Array ElementsNested Loops with 2D ArraysJagged ArraysCommon Matrix OperationsRecap - Multi-dimensional4Flow Control Techniques
Early ReturnsGuard ClausesJump Statements (goto)Break and ContinueFlatten Nested Conditionals7Logical Operators Advanced
Short-Circuit EvaluationConditional Logical OperatorsOperator PrecedenceRecap - Advanced Operators2Advanced Decision Making
Multiple ConditionsComplex Boolean LogicIf vs. Switch ComparisonNested Switch StatementsRecap - Advanced Decisions5Exception Handling
Try-Catch BasicsException TypesMultiple Catch BlocksWorking with FilesFinally BlockUsing vs. Try-FinallyCustom ExceptionsRecap - Error Handling8Data Analysis System
Data Collection SetupData Entry Logic11HashSet Part 1
What is a HashSet?Adding an ElementRemoving an ElementChecking if an Element ExistsEmpty and SizeRecap - HashSet3Loop Enhancements
Loop PerformanceIterating ComplexEach Loop TypeRefactoring LoopsRecap - Optimized Loops6Null Handling
Null Reference BasicsNullable Value TypesNull Checking PatternsDefensive ProgrammingRecap - Null Safety