comparer une list<> et les clefs d'un dictionnaire
Bonjour,
pour mon programme, je rempli un dictionnaire avec une list<> dont les membre deviennent les TKey.
Je souhaiterai pouvoir supprimer, après avoir supprimer un élément de cette list<>la comparer au clefs de mon dico et si un élément n'y est plus celui-ci se supprime.
Après moult essais, j'en suis toujours au même point!!!:weird:
Pouvez-vous m'aider.
voici mon code:
merci
Code:
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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
| public partial class Form1 : Form
{
ListeParams listeParams = new ListeParams();
//Params nI;
//instanciation d'une liste avec des objets de type params
public static List<Params> listeInfo = new List<Params>();
//Instanciation d'un dictionnaire avec des TKey de type params et des TValue de type uerControls
public Dictionary<Params, UserControl> dico = new Dictionary<Params, UserControl>();
public Form1()
{
InitializeComponent();
}
private void ButtonShow_Click(object sender, EventArgs e)
{
listeParams.ShowDialog();
//POUR LES TESTS !
//label que l'on peut mettre en face du bouton parameters qui permet de vérifier le nombre de chaînes de caractères passées
labelNbInfo.Text = listeInfo.Count.ToString();
List<Params> listeRemove = new List<Params>(listeInfo);
foreach (Params nI in listeRemove)// parcours de la liste
{
// On compare les clefs
if (dico.ContainsKey(nI))
continue;
//je conditionne les userControls en fonction de leur type
if (nI.controls == ParamDisplayTypo.textBox)
{
UserControlTB userControlTB = new UserControlTB();
//ajout dans le panel des contrôles utilisateurs
flowLayoutPanel1.Controls.Add(userControlTB);
userControlTB.LabelName = nI.name;
userControlTB.LabelU = nI.unit;
dico.Add(nI, userControlTB);
}
if (nI.controls == ParamDisplayTypo.trackBar)
{
UserControlTrack userControlTrack = new UserControlTrack();
//TrackBarSize tbs;
flowLayoutPanel1.Controls.Add(userControlTrack);
userControlTrack.LabelN = nI.name;
userControlTrack.LabelTU = nI.unit;
dico.Add(nI, userControlTrack);
}
if (nI.controls == ParamDisplayTypo.checkbox)
{
UserControlCB userControlCB = new UserControlCB();
flowLayoutPanel1.Controls.Add(userControlCB);
userControlCB.LabelNCB = nI.name;
userControlCB.LabelUnits = nI.unit;
dico.Add(nI, userControlCB);
}
}
} |