2010-10-13 68 views
1

Par exemple, j'ai une classe nommée Temp puis je lui ai affecté des valeurs en utilisant un IList<Temp>. Après avoir rempli le IList<Temp>, j'ai créé un dictionnaire et assigner une touche int à chaque objet. Ma question est comment est-ce que je peux retirer de IList et dictionnaire le temp_value avec le nom b et un avec une valeur clé de "2"?Comment supprimer une valeur IList <Class> en utilisant la clé du dictionnaire

class Temp 
{ 
    public string name { get; set; } 

    public Temp(string n) 
    { 
     this.name = n; 
    } 
} 

principal

class Program 
{ 
    static void Main(string[] args) 
    { 
     IList<Temp> temp_value = new List<Temp>(); 

     temp_value.Add(new Temp("a") 
     { 
      name = "a", 
     }); 

     temp_value.Add(new Temp("b") 
     { 
      name = "b", 
     }); 

     temp_value.Add(new Temp("b") 
     { 
      name = "b", 
     }); 

     Dictionary<int, Temp> dic = new Dictionary<int, Temp>(); 

     for (int i = 0; i < temp_value.Count; i++) 
     { 
      dic.Add(i, temp_value[i]);     
     } 
    } 
} 
+0

Cette question est plus en ce qui concerne le maintien de IList et IDictionary synchronisés, ou de retirer simplement les éléments d'un IDictionary? – spender

+0

Je veux également que l'objet avec la valeur de nom b soit enlevé quand je l'ai enlevé du dictionnaire. – Rye

Répondre

1

Dict.remove (2)

Ceci est la façon la plus simple

Depuis que vous avez ajouté les éléments dans le dictionnaire à même index liste.

Donc, si vous utilisez dict.remove (2) que vous pouvez utiliser à IList.Remove (2)

+0

Merci! J'ai oublié le 'RemoveAt()' – Rye