Langagec#

[Résolu]
Signaler
Messages postés
17
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
10 novembre 2009
-
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
-
Bonsoir,
je voudrais avoir une idée sur la fonction qui renvoie la chaine P ,en ne gardant que la premiere occurence de chaque caractere. merçi beaucoup

3 réponses

Messages postés
118
Date d'inscription
lundi 16 février 2009
Statut
Membre
Dernière intervention
6 décembre 2010
1
salut, voici une solution (mais System.Linq est requis pour cela):

string PremiereOccurence(string chaine, bool invariant)
{
    return (invariant == true) ? new string(chaine.ToLowerInvariant().ToCharArray().Distinct().ToArray()) : new string(chaine.ToCharArray().Distinct().ToArray());
}

sinon de maniere plus classique et pour plus de compatibilité (et rapidité), tu n'as qu'a faire un algo simple qui parcourt chaque caractere de ta chaine (foreach), verifie si le caractere a deja ete "lu". S'il ne l'a pas été alors tu l'enregistres.
Messages postés
17
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
10 novembre 2009

Bonjour,
je suis habitué avec les boucles , car je ne suis qu'un debutant donc je ne comprends pas bien votre reponse,la deuxieme idee me semble plus simple ,je comprends mais c'est comment l'exprimer en c#.merçi
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
49
List<char> liste = new List<char>();
foreach (char c in chaine)
{
    if (!liste.Contains(c))
    {
        liste.Add(c);
    }
}

Ainsi, si ta chaine est "ceci est ma chaine", ta liste contiendra :
c
e
i
<espace>
s
t
m
a
h
n

Krimog :
while (!succeed = try()) ;