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
| XmlSerializer xSer = new XmlSerializer(typeof(T[]));
IEnumerable<CDefDiscretSauvegarde> ilist2 = (IEnumerable<CDefDiscretSauvegarde>)xSer.Deserialize(reader);
bool discret_find = false; // flag d'identification du discret reçu
ArrayList ilist3 = new ArrayList();
IList<CDefDiscret> liste_dico = new List<CDefDiscret>(CMain.Instance.DicoDiscrets); // liste des discrets de référence
foreach (CDefDiscretSauvegarde cDefDiscret in ilist2)
{
int numTiroir = cDefDiscret.NumTiroir;
int numcarte = cDefDiscret.NumCarte;
int numVoie = cDefDiscret.NumVoie;
CDefDiscret discretTmp = new CDefDiscret();
for (int j = 0; j < liste_dico.Count; j++)
{
CDefDiscret d = (CDefDiscret)liste_dico[j];
if ((d.NumTiroir == numTiroir) && (d.NumCarte == numcarte) && (d.NumVoie == numVoie))
{
discretTmp = d.Clone() as CDefDiscret; // new CDefDiscret(d);
discretTmp.Pilotage = cDefDiscret.Pilotage;
discretTmp.Surveillance = cDefDiscret.Surveillance;
discretTmp.MoyenSurveillance.LedAffichage.NumLed = cDefDiscret.NumLed;
discretTmp.MoyenSurveillance.LedAffichage.CouleurEtatVRAI = cDefDiscret.CouleurEtatVRAI;
discretTmp.MoyenSurveillance.LedAffichage.CouleurEtatFAUX = cDefDiscret.CouleurEtatFAUX;
discretTmp.MoyenSurveillance.LedAffichage.Utilisee = cDefDiscret.Utilisee;
discretTmp.MoyenSurveillance.ModeSurveillance = cDefDiscret.ModeSurveillance;
discretTmp.DashInPort = cDefDiscret.DashInPort;
discret_find = true;
ilist3.Add(discretTmp);
}
}
if (!discret_find)
MessageBox.Show(_gestionLangue.LireTexte(CGestionLangue.ESection.information.ToString(), "no_discret", "") + string.Format(" {0:00} / {1:00} / {2:00}", numTiroir, numcarte, numVoie));
}
IEnumerable<T> iIist = (IEnumerable<T>)ilist3; // exception error
// Fusionner la liste courante et les nouveaux éléments
this.MergeWith(iIist, isClearBefore); |