Vérifier si un élément existe
Fait partie de la section Logique & Flux du Journey C# de Coddy — leçon 59 sur 66.
La méthode Contains(element) vérifie si un élément spécifique existe dans le HashSet. Elle retourne true si l'élément est trouvé, et false sinon.
Créer un HashSet vide :
HashSet<string> fruits = new HashSet<string>();Ajoutez quelques éléments au HashSet :
fruits.Add("Apple");
fruits.Add("Banana");Vérifiez si un élément existe :
bool hasApple = fruits.Contains("Apple"); // Renvoie true
bool hasOrange = fruits.Contains("Orange"); // Renvoie falseVous pouvez utiliser le résultat dans des instructions conditionnelles :
if (fruits.Contains("Apple"))
{
Console.WriteLine("Apple is in the set");
}Défi
FacileCréez une méthode nommée ElementExists qui prend deux arguments :
- Un HashSet de chaînes de caractères (
set) - Une chaîne de caractères (
element) à vérifier
La méthode doit vérifier si l'élément existe dans l'ensemble et retourner un message sous forme de chaîne de caractères :
- Si l'élément existe, retournez "The element 'X' exists in the set"
- Si l'élément n'existe pas, retournez "The element 'X' does not exist in the set"
Où 'X' est la valeur réelle de l'élément vérifié.
Aide-mémoire
La méthode Contains(element) vérifie si un élément spécifique existe dans le HashSet. Elle renvoie true si l'élément est trouvé, et false sinon.
Créer un HashSet vide :
HashSet<string> fruits = new HashSet<string>();Ajouter des éléments au HashSet :
fruits.Add("Apple");
fruits.Add("Banana");Vérifier si un élément existe :
bool hasApple = fruits.Contains("Apple"); // Renvoie true
bool hasOrange = fruits.Contains("Orange"); // Renvoie falseUtilisation dans des instructions conditionnelles :
if (fruits.Contains("Apple"))
{
Console.WriteLine("Apple is in the set");
}Essayez vous-même
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
public class Program
{
public static string ElementExists(HashSet<string> set, string element)
{
// Écrivez votre code ici
return "";
}
public static void Main()
{
// Lire la première ligne pour vérifier s'il s'agit du format JSON
string firstLine = Console.ReadLine();
string elementToCheck = Console.ReadLine();
HashSet<string> set = new HashSet<string>();
// Vérifier si l'entrée est au format de tableau JSON
if (firstLine != null && firstLine.StartsWith("[") && firstLine.EndsWith("]"))
{
try
{
// Extraire le contenu entre les crochets
string arrayContent = firstLine.Substring(1, firstLine.Length - 2);
// Utiliser une expression régulière pour faire correspondre toutes les chaînes entre guillemets
MatchCollection matches = Regex.Matches(arrayContent, @"""([^""]*)""");
foreach (Match match in matches)
{
// Ajouter le groupe capturé (sans les guillemets)
if (match.Groups.Count > 1)
{
set.Add(match.Groups[1].Value.Trim());
}
}
// Vérifier si l'élément est au format de chaîne 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
{
// Traiter l'entrée traditionnelle séparée par des virgules
string[] elements = firstLine.Split(',');
foreach (string element in elements)
{
set.Add(element.Trim());
}
}
string result = ElementExists(set, elementToCheck);
Console.WriteLine(result);
}
}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
1Tableaux multidimensionnels
Bases des tableaux 2DDéclaration et initialisation en 2DAccès aux éléments d'un tableau 2DBoucles imbriquées et tableaux 2DTableaux irréguliersOpérations matricielles courantesRécapitulatif - Multidimensionnel4Techniques de contrôle de flux
Retours anticipésClauses de gardeInstructions de saut (goto)Break et ContinueAplatir les conditionnelles imbriquées2Prise de décision avancée
Conditions multiplesLogique booléenne complexeComparaison If vs SwitchInstructions Switch imbriquéesRécapitulatif - Décisions avancées5Gestion des exceptions
Bases du Try-CatchTypes d'exceptionsBlocs Catch multiplesManipulation de fichiersLe bloc FinallyUsing vs Try-FinallyExceptions personnaliséesRécapitulatif - Gestion des erreurs8Système d'analyse de données
Configuration de la collecte de donnéesLogique de saisie de données11HashSet Partie 1
Qu'est-ce qu'un HashSet ?Ajouter un élémentSupprimer un élémentVérifier si un élément existeVide et tailleRécapitulatif - HashSet3Améliorations des boucles
Performance des bouclesItération de structures complexesChaque type de boucleRefactorisation des bouclesRécapitulatif - Boucles optimisées6Gestion des valeurs nulles
Les bases des références nullesTypes valeur nullablesPatterns de vérification de nullitéProgrammation défensiveRécapitulatif - Null Safety