IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Remplacer des strings dans une liste [Débutant]


Sujet :

C#

  1. #1
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2014
    Messages : 17
    Par défaut Remplacer des strings dans une liste
    Bonjour tout le monde
    J’ai la liste suivante :
    public static List<string> Lst_H = new List<string>
    {
    "H","H","H","H","H","H","H","H","H","H"
    };
    Et je veux remplacer le dernier élément de la liste par F et copier cette nouvelle liste dans une liste que j’ai nommé Lst_F qui sera :
    public static List<string> Lst_F= new List<string>
    {
    "H","H","H","H","H","H","H","H","H","F"
    };
    Ensuite je remplace l’avant dernier élément par F tout en gardant le reste intact
    Et ce sera :
    public static List<string> Lst_F = new List<string>
    {
    "H","H","H","H","H","H","H","H","F","H"
    };
    et ainsi de suite jusqu’au premier élément
    Ensuite je remplacerai les 2 derniers éléments par F au même temps et ce sera
    public static List<string> Lst_F = new List<string>
    {
    "H","H","H","H","H","H","H","H","F","F"
    };
    Et ensuite ce sera
    public static List<string> Lst_F = new List<string>
    {
    "H","H","H","H","H","H","H","F","F","H"
    };
    Et après je remplacerai 3 éléments par F et ensuite je remplacerai 4 éléments par F jusqu’à la fin.
    J’ai essayé avec la méthode replace et en utilisant des boucles mais ça n’a pas bien fonctionné
    Merci à tous

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 032
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 032
    Par défaut
    Bonjour,

    Vous ne présentez aucun code permettant de vous aider à corriger.

    Un oubli ?
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2014
    Messages : 17
    Par défaut
    Merci pour le message
    voila le code :

    public static List<string> Lst_H = new List<string>
    {
    "H","H","H","H","H","H","H","H","H","H"
    };
    public static List<string> Lst_F = new List<string>();
    Console.WriteLine("Liste avec H :");
    for (int i = 0; i < Lst_H.Count; i++)
    Console.WriteLine(Lst_H[i]);

    int K = Lst_H.IndexOf(Lst_H.Last());
    foreach (string Str in Lst_H)
    {
    for (int i = 0; i < Lst_H.Count; i++)
    {
    if (Lst_H.IndexOf(Str) == K)
    {
    Str.Replace("H", "F");
    }
    else { }
    }
    }
    Ensuite je veux le faire pour K-1 et ainsi de suite
    Apres je remplace deux éléments au lieu d'un seul élément ensuite trois éléments etc
    je veux enfin avoir quelque chose comme :

    H H H H H H H H H H
    H H H H H H H H H F
    H H H H H H H H F H
    H H H H H H H F H H
    H H H H H H F H H H
    H H H H H F H H H H
    H H H H F H H H H H
    H H H F H H H H H H
    H H F H H H H H H H
    H F H H H H H H H H
    F H H H H H H H H H
    ----------------------------------------------------------------------------
    H H H H H H H H F F
    H H H H H H H F F H
    H H H H H F F H H H
    H H H H F F H H H H
    H H H F F H H H H H
    H H F F H H H H H H
    H F F H H H H H H H
    F F H H H H H H H H
    -------------------------------------------------------------------------------
    H H H H H H H F F F
    H H H H H H F F F H
    H H H H H F F F H H
    H H H H F F F H H H
    H H H F F F H H H H
    H H F F F H H H H H
    H F F F H H H H H H
    F F F H H H H H H H
    ..............etc
    Je m'excuse pour le format je ne sais pas comment utiliser les messages dans developper.net
    Merci pour ton aide

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    696
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 696
    Par défaut
    bonjour,
    je passerais aussi par des boucles imbriquées.
    Veuillez tester ce code si il vous convient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    class Program
    {
        private static readonly List<string> Lst_H = new List<string> { "H", "H", "H", "H", "H", "H", "H", "H", "H", "H" };
     
        static void Main(string[] args)
        {
            Dictionary<int, List<string>> Dico = GetListF();
            //*** Affiche les éléments de chaque liste :
            foreach (var kvp in Dico)
            {
                Console.WriteLine($"{kvp.Key}: {string.Join(", ", kvp.Value)}");
            }
        }
     
        private static Dictionary<int, List<string>> GetListF()
        {
            List<string> Lst_F = [];
            Dictionary<int, List<string>> Dico = new Dictionary<int, List<string>>();
            int nbrItemsInList = Lst_H.Count;
            int rankInDico = 1;
     
            for (int k = 0; k < nbrItemsInList; k++)
            {
                bool continueLoop = true;
                for (int i = nbrItemsInList - 1; continueLoop && i > -1; i--)
                {
                    Lst_F.Clear();
                    Lst_F.AddRange(Lst_H);
                    for (int j = 0; j <= k; j++)
                    {
                        if (i - j > -1)
                        {
                            Lst_F[i - j] = "F";
                        }
                        if (Lst_F[0] == "F")
                        {
                            continueLoop = false;
                        }
                    }
     
                    Dico[rankInDico] = new List<string>();
                    Dico[rankInDico].Add(string.Join(",", Lst_F));
                    rankInDico++;
                }
            }
            return Dico;
        }
    }
    Et ci-dessous la fonction commentée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
            private static Dictionary<int, List<string>> GetListF1()
            {
                List<string> Lst_F = [];
                Dictionary<int, List<string>> Dico = new Dictionary<int, List<string>>();
                int nbrItemsInList = Lst_H.Count;
                int rankInDico = 1;
     
                //*** La première boucle donne dans l'ordre croissant, le nombre d'éléments
                //    de la liste à changer en même temps : 1 puis 2 etc... jusqu'au nombre total d'éléments de la liste.
                for (int k = 0; k < nbrItemsInList; k++)
                {
                    //*** La deuxième boucle indique la position dans la liste où se terminera le remplacement. 
                    //    et tant que "continueLoop" est vrai, on continue cette boucle.
                    bool continueLoop = true;
                    for (int i = nbrItemsInList - 1; continueLoop && i > -1; i--)
                    {
                        //*** On recharge la liste originelle, afin d'y appliquer un nouveau remplacement.
                        Lst_F.Clear();
                        Lst_F.AddRange(Lst_H);
     
                        //*** La troisième boucle effectue le ou les remplacements,
                        //    au nombre indiqué par la 1ère boucle, à rebours, depuis la position indiquée par la 2ième boucle.
                        for (int j = 0; j <= k; j++)
                        {
                            if (i - j > -1)
                            {
                                Lst_F[i - j] = "F";
                            }
                            //*** Si le premier élément de la liste est "F", le contrat est rempli et on sort de la boucle 2.
                            if (Lst_F[0] == "F")
                            {
                                continueLoop = false;
                            }
                        }
     
                        //*** Pour la sortie de la fonction et pour garder en mémoire les listes obtenues, on a choisi un dictionnaire.
                        Dico[rankInDico] = new List<string>();
                        Dico[rankInDico].Add(string.Join(",", Lst_F)); //*** Ajoute une copie de Lst_F au lieu de sa référence.
                        rankInDico++;
                    }
                }
                return Dico;
            }

  5. #5
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2014
    Messages : 17
    Par défaut
    Merci Mr : Chrismonoye
    Votre méthode marche à merveille merci beaucoup et merci surtout pour les commentaires j'en appris beaucoup et je n'ai pas eu l'idée de passer par les dictionnaires pour garder en mémoire les listes obtenues :
    Voila ce que j'ai obtenu :
    01: H,H,H,H,H,H,H,H,H,F
    02: H,H,H,H,H,H,H,H,F,H
    03: H,H,H,H,H,H,H,F,H,H
    04: H,H,H,H,H,H,F,H,H,H
    05: H,H,H,H,H,F,H,H,H,H
    06: H,H,H,H,F,H,H,H,H,H
    07: H,H,H,F,H,H,H,H,H,H
    08: H,H,F,H,H,H,H,H,H,H
    09: H,F,H,H,H,H,H,H,H,H
    10: F,H,H,H,H,H,H,H,H,H

    11: H,H,H,H,H,H,H,H,F,F
    12: H,H,H,H,H,H,H,F,F,H
    13: H,H,H,H,H,H,F,F,H,H
    14: H,H,H,H,H,F,F,H,H,H
    15: H,H,H,H,F,F,H,H,H,H
    16: H,H,H,F,F,H,H,H,H,H
    17: H,H,F,F,H,H,H,H,H,H
    18: H,F,F,H,H,H,H,H,H,H
    19: F,F,H,H,H,H,H,H,H,H

    20: H,H,H,H,H,H,H,F,F,F
    21: H,H,H,H,H,H,F,F,F,H
    22: H,H,H,H,H,F,F,F,H,H
    23: H,H,H,H,F,F,F,H,H,H
    24: H,H,H,F,F,F,H,H,H,H
    25: H,H,F,F,F,H,H,H,H,H
    26: H,F,F,F,H,H,H,H,H,H
    27: F,F,F,H,H,H,H,H,H,H

    28: H,H,H,H,H,H,F,F,F,F
    29: H,H,H,H,H,F,F,F,F,H
    30: H,H,H,H,F,F,F,F,H,H
    31: H,H,H,F,F,F,F,H,H,H
    32: H,H,F,F,F,F,H,H,H,H
    33: H,F,F,F,F,H,H,H,H,H
    34: F,F,F,F,H,H,H,H,H,H

    35: H,H,H,H,H,F,F,F,F,F
    36: H,H,H,H,F,F,F,F,F,H
    37: H,H,H,F,F,F,F,F,H,H
    38: H,H,F,F,F,F,F,H,H,H
    39: H,F,F,F,F,F,H,H,H,H
    40: F,F,F,F,F,H,H,H,H,H

    41: H,H,H,H,F,F,F,F,F,F
    42: H,H,H,F,F,F,F,F,F,H
    43: H,H,F,F,F,F,F,F,H,H
    44: H,F,F,F,F,F,F,H,H,H
    45: F,F,F,F,F,F,H,H,H,H

    46: H,H,H,F,F,F,F,F,F,F
    47: H,H,F,F,F,F,F,F,F,H
    48: H,F,F,F,F,F,F,F,H,H
    49: F,F,F,F,F,F,F,H,H,H
    50: H,H,F,F,F,F,F,F,F,F
    51: H,F,F,F,F,F,F,F,F,H
    52: F,F,F,F,F,F,F,F,H,H

    53: H,F,F,F,F,F,F,F,F,F
    54: F,F,F,F,F,F,F,F,F,H

    55: F,F,F,F,F,F,F,F,F,F
    Bravo à vous
    Je mettrais résolu à la fin

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Remplacer des caractères dans une liste de valeurs
    Par filsdepub dans le forum SQL
    Réponses: 4
    Dernier message: 01/10/2018, 14h42
  2. Stocker des strings dans une liste
    Par TitomTommy dans le forum Général Python
    Réponses: 5
    Dernier message: 14/06/2018, 14h53
  3. Alignement des Strings dans une List
    Par saucisse17 dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 06/04/2010, 14h36
  4. [RegEx] Remplacer des caractères dans une string
    Par jexl dans le forum Langage
    Réponses: 2
    Dernier message: 15/03/2007, 22h26
  5. [langage] Comment rajouter des champs dans une liste
    Par toto_titi dans le forum Langage
    Réponses: 4
    Dernier message: 28/08/2003, 14h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo