Je souhaite avoir une ArrayList contenant des Hashtables. Je crée une Hashtable et des valeurs ajoutées. Je l'ai ensuite ajouté à ArrayList. J'ai ensuite changé les valeurs des Hashtables et je l'ai ajouté de nouveau à la liste des tableaux. Il ne sauvegarde pas les premières valeurs et finit par avoir des valeurs dupliquées exactement identiques aux dernières valeurs!ArrayList de tables de hachage en C#
Des suggestions? Voici mon code
namespace ValuesTest
{
internal class Class1
{
public static ArrayList StartList = new ArrayList();
public static Hashtable Start = new Hashtable();
static void Main(string[] args)
{
Start["active"] = true;
Start["name"] = "prog1";
Start["path"] = @"C:\programfiles\prog1";
Start["parameter"] = string.Empty;
StartList.Add(Start);
Start["active"] = false;
Start["name"] = "prog2";
Start["path"] = @"C:\programfiles\prog2";
Start["parameter"] = "/q";
StartList.Add(Start);
foreach (Hashtable HT in StartList)
{
Console.WriteLine(HT["active"] + " - " + HT["name"] + " - " + HT["path"] + " - " + HT["parameter"]);
// it will always gives
// False - prog2 - C:\programfiles\prog2 - /q
}
Console.ReadLine();
}
}
}
J'ai vu beaucoup de ArrayList récemment. Au lieu de cela, vous devez utiliser la liste sauf si vous utilisez .Net framework 1/1.1. La liste donnera de meilleures performances et évitera de lancer (ce que 'foreach' implicite dans votre cas). salutations –
Vous ne créez pas une nouvelle instance de Hashtable, mais remplacez les valeurs. P.S.: L'utilisation de plusieurs points d'exclamation dans le sujet n'est pas très utile si vous attendez une réponse: p –
Cependant, les gens devraient voter sur la question, pas sur la grammaire. –