Menu
Coddy logo textTech

Usuwanie elementu

Część sekcji Logika i sterowanie przepływem ścieżki C# w Coddy. Lekcja 58 z 66.

Metoda Remove(element) usuwa określony element z HashSet, jeśli istnieje. Ta metoda zwraca true, jeśli element został pomyślnie usunięty, i false, jeśli elementu nie znaleziono w zbiorze.

Utwórz pusty HashSet:

HashSet<string> fruits = new HashSet<string>();

Dodaj kilka elementów do zbioru:

fruits.Add("Apple");
fruits.Add("Banana");
fruits.Add("Cherry");

Po wykonaniu powyższego kodu zbiór fruits zawiera:

["Apple", "Banana", "Cherry"]

Teraz usuń „Banana” ze zbioru:

bool wasRemoved = fruits.Remove("Banana");

Po usunięciu zbiór zawiera:

["Apple", "Cherry"]

Wartość wasRemoved będzie wynosić true, ponieważ znaleziono „Banana” i ją usunięto.

Jeśli spróbujemy usunąć element, który nie istnieje:

bool wasRemoved = fruits.Remove("Orange");

Zbiór pozostaje bez zmian, a wasRemoved będzie mieć wartość false.

challenge icon

Wyzwanie

Łatwy

Utwórz metodę o nazwie RemoveElement, która przyjmuje dwa argumenty:

  1. Zbiór ciągów znaków typu HashSet (set)
  2. Ciąg znaków (element) do usunięcia

Metoda powinna spróbować usunąć podany element ze zbioru. Jeśli element został pomyślnie usunięty, wypisz "Element removed: True", w przeciwnym razie wypisz "Element removed: False". Następnie wypisz zaktualizowany zbiór w nowej linii.

Spróbuj swoich sił

using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;

public class Program
{
    public static void RemoveElement(HashSet<string> set, string element)
    {
        // Wpisz tutaj swój kod
    }
    
    public static void Main()
    {
        HashSet<string> set = new HashSet<string>();
        
        // Odczytaj pierwszy wiersz, aby sprawdzić, czy jest w formacie JSON
        string firstLine = Console.ReadLine();
        string elementToRemove;
        
        // Sprawdź, czy dane wejściowe są w formacie tablicy JSON
        if (firstLine != null && firstLine.StartsWith("[") && firstLine.EndsWith("]"))
        {
            try
            {
                // Wyodrębnij zawartość między nawiasami kwadratowymi
                string arrayContent = firstLine.Substring(1, firstLine.Length - 2);
                
                // Użyj wyrażenia regularnego, aby znaleźć wszystkie ciągi znaków w cudzysłowach
                MatchCollection matches = Regex.Matches(arrayContent, @"""([^""]*)""");
                
                foreach (Match match in matches)
                {
                    // Dodaj przechwyconą grupę (bez cudzysłowów)
                    if (match.Groups.Count > 1)
                    {
                        set.Add(match.Groups[1].Value.Trim());
                    }
                }
                
                // Odczytaj drugi wiersz zawierający element do usunięcia
                string secondLine = Console.ReadLine();
                
                // Sprawdź, czy element jest w formacie ciągu znaków JSON
                Match elementMatch = Regex.Match(secondLine, @"""([^""]*)""");
                if (elementMatch.Success && elementMatch.Groups.Count > 1)
                {
                    elementToRemove = elementMatch.Groups[1].Value;
                }
                else
                {
                    elementToRemove = secondLine;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error parsing JSON input: {ex.Message}");
                return;
            }
        }
        else
        {
            // Przetwórz dane wejściowe w tradycyjnym formacie
            string[] elements = firstLine.Split(',');
            foreach (string element in elements)
            {
                set.Add(element.Trim());
            }
            
            // Odczytaj element do usunięcia w tradycyjnym formacie
            elementToRemove = Console.ReadLine();
        }
        
        RemoveElement(set, elementToRemove);
    }
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i sterowanie przepływem

Poćwicz samodzielnie: Kompilator C# online