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 :

Iteration et update


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Par défaut Iteration et update
    Bonjour à tous,

    Je fais fasse à un comportement très étrange que je n'arrive pas à m'expliquer.
    Dans une boucle j'essaye de modifier une propriété de mon objet.
    J'ai essayé avec un foreach à la base puis avec une simple loop et j'ai le même comportement ...
    Lorsque je modifie ma variable "SIdInternalSchedulerSubProcess" je modifie la variable dans tous mes objets de la liste.
    Est ce que quelqu'un a une idée ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
     for (int iProcess = 0; iProcess < listSubProcessToExecute.Count; iProcess++)
                            {
                                GTMSubProcess gtmSubProcess = listSubProcessToExecute[iProcess];
                                if (gtmSubProcess.BIsEnabled)
                                {                                              
                                    gtmSubProcess.SIdInternalSchedulerSubProcess = iProcess.ToString();                              
                                }
                            }

  2. #2
    Membre Expert
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    667
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 667
    Par défaut
    Bonjour,

    Comment est remplie cette liste ? Je la soupçonne de contenir uniquement des instances représentant le même objet en mémoire.

  3. #3
    Membre éclairé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Par défaut
    J'utilise LINQ en amont :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    List<GTMSubProcess> listDailySubProcess = GTMSubProcessCollection.getDailySubProcess(this.listAllSubProcess, dtLastTick, dtNow);
    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
     
    public static List<GTMSubProcess> getDailySubProcess(List<GTMSubProcess> listSubProcess, DateTime dtStart, DateTime dtEnd)
            {
                List<GTMSubProcess> listSubProcessToReturn = null;
     
                try
                {
                    // -- Récupération des process journaliers
                    // ---------------------------------------
                    listSubProcessToReturn = (from gtmSubProcess in listSubProcess
                                              from gtmPeriodScheduler in gtmSubProcess.ListPeriodScheduler
                                              where gtmSubProcess.GtmTypePeriod == GTMEnum.GTMSubProcessTypePeriod.Daily
                                              && DateTime.Parse(DateTime.Now.ToShortDateString() + " " + gtmPeriodScheduler.SHour) >= dtStart
                                              && DateTime.Parse(DateTime.Now.ToShortDateString() + " " + gtmPeriodScheduler.SHour) <= dtEnd
                                              select gtmSubProcess).ToList();
     
                    return listSubProcessToReturn;
                }
                catch (Exception ex)
                {
                    throw new Exception("GTMSubProcessCollection.getDailySubProcess : " + ex.Message + "\n", ex);
                }
            }

  4. #4
    Membre éclairé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Par défaut
    En effet en y regardant de plus près mon LINQ ramène la même instance d'objet.
    Merci du coup de main ... Vicieux ce problème !!

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

Discussions similaires

  1. Iteration VS recursivité
    Par yacinechaouche dans le forum C
    Réponses: 40
    Dernier message: 16/11/2012, 11h52
  2. Réponses: 36
    Dernier message: 26/11/2008, 16h55
  3. [dBase]il y a mieux que la commande sql UPDATE ?
    Par sana72 dans le forum Autres SGBD
    Réponses: 4
    Dernier message: 12/12/2002, 11h59
  4. Réponses: 3
    Dernier message: 10/11/2002, 11h03
  5. update et virgule
    Par Delph dans le forum Bases de données
    Réponses: 8
    Dernier message: 27/08/2002, 14h40

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