Проверка наличия элемента
Часть раздела Логика и управление потоком путешествия по 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);
// Используем 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);
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Многомерные массивы
Основы 2D-массивовОбъявление и инициализация 2D-массивовДоступ к элементам 2D-массиваВложенные циклы с 2D-массивамиЗубчатые массивыОсновные операции с матрицамиПовторение — многомерные массивы4Методы управления потоком выполнения
Досрочный выходЗащитные условияОператоры перехода (goto)Break и ContinueУпрощение вложенных условных конструкций7Логические операторы: продвинутый уровень
Вычисление с коротким замыканиемУсловные логические операторыПриоритет операторовПовторение — продвинутые операторы2Продвинутое принятие решений
Множественные условияСложная логика BooleanСравнение If и SwitchВложенные конструкции SwitchПовторение — продвинутые решения5Обработка исключений
Основы Try-CatchТипы исключенийНесколько блоков CatchРабота с файламиБлок FinallyИспользование Using вместо Try-FinallyПользовательские исключенияПовторение — обработка ошибок8Система анализа данных
Настройка сбора данныхЛогика ввода данных11HashSet. Часть 1
Что такое HashSet?Добавление элементаУдаление элементаПроверка наличия элементаПустота и размерПовторение — HashSet3Улучшение циклов
Производительность цикловИтерация по сложным структурамКаждый тип циклаРефакторинг цикловПовторение — оптимизированные циклы6Обработка null
Основы ссылок на nullТипы значений, допускающие nullШаблоны проверки на nullЗащитное программированиеПовторение — безопасность при работе с nullПотренируйтесь самостоятельно: Онлайн-компилятор C#