Menu
Coddy logo textTech

Supprimer un élément

Fait partie de la section Logique & Flux du Journey C# de Coddy — leçon 58 sur 66.

La méthode Remove(element) supprime l'élément spécifié de la HashSet, s'il existe. Cette méthode retourne true si l'élément a été supprimé avec succès, et false si l'élément n'a pas été trouvé dans l'ensemble.

Créer un HashSet vide :

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

Ajoutez quelques éléments à l'ensemble :

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

Après l'exécution du code ci-dessus, l'ensemble fruits contient :

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

Maintenant, supprimez « Banana » de l'ensemble :

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

Après suppression, l'ensemble contient :

["Apple", "Cherry"]

La valeur de wasRemoved sera true parce que « Banana » a été trouvée et supprimée.

Si nous essayons de supprimer un élément qui n'existe pas :

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

L'ensemble reste inchangé, et wasRemoved sera false.

challenge icon

Défi

Facile

Créez une méthode nommée RemoveElement qui prend deux arguments :

  1. Un HashSet de chaînes (set)
  2. Une chaîne (element) à supprimer

La méthode doit tenter de supprimer l'élément donné de l'ensemble. Si l'élément a été supprimé avec succès, affichez "Element removed: True", sinon affichez "Element removed: False". Ensuite, affichez l'ensemble mis à jour sur une nouvelle ligne.

Aide-mémoire

La méthode Remove(element) supprime l'élément spécifié de la HashSet et retourne true si la suppression est réussie, false si l'élément n'a pas été trouvé :

HashSet<string> fruits = new HashSet<string>();
fruits.Add("Apple");
fruits.Add("Banana");
fruits.Add("Cherry");

bool wasRemoved = fruits.Remove("Banana"); // returns true
bool notFound = fruits.Remove("Orange");   // returns false

Essayez vous-même

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

public class Program
{
    public static void RemoveElement(HashSet<string> set, string element)
    {
        // Écrivez votre code ici
    }
    
    public static void Main()
    {
        HashSet<string> set = new HashSet<string>();
        
        // Lire la première ligne pour vérifier si c'est au format JSON
        string firstLine = Console.ReadLine();
        string elementToRemove;
        
        // Vérifier si l'entrée est au format tableau JSON
        if (firstLine != null && firstLine.StartsWith("[") && firstLine.EndsWith("]"))
        {
            try
            {
                // Extraire le contenu entre crochets carrés
                string arrayContent = firstLine.Substring(1, firstLine.Length - 2);
                
                // Utiliser regex pour faire correspondre toutes les chaînes entre guillemets
                MatchCollection matches = Regex.Matches(arrayContent, @"""([^""]*)""");
                
                foreach (Match match in matches)
                {
                    // Ajouter le groupe capturé (sans guillemets)
                    if (match.Groups.Count > 1)
                    {
                        set.Add(match.Groups[1].Value.Trim());
                    }
                }
                
                // Lire la deuxième ligne pour l'élément à supprimer
                string secondLine = Console.ReadLine();
                
                // Vérifier si l'élément est au format chaîne 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
        {
            // Traiter le format d'entrée traditionnel
            string[] elements = firstLine.Split(',');
            foreach (string element in elements)
            {
                set.Add(element.Trim());
            }
            
            // Lire l'élément à supprimer au format traditionnel
            elementToRemove = Console.ReadLine();
        }
        
        RemoveElement(set, elementToRemove);
    }
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique & Flux