gpt4 book ai didi

c# - C#中哈希表的ArrayList

转载 作者:行者123 更新时间:2023-11-30 18:57:52 25 4
gpt4 key购买 nike

我想要一个包含哈希表的 ArrayList。我创建了一个哈希表并添加了值。然后我将它添加到 ArrayList。然后我更改了哈希表的值并再次将其添加到数组列表中。它不保存第一个值和结尾的重复值,这些值与最后一个值完全相同!

有什么建议吗?这是我的代码

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();
}
}
}

最佳答案

将 start 移动到 Main 函数内部,并为第二个 add 重新初始化它(正如@lasseespeholt 所说,使用 List<T> )。

    static List<Hashtable> StartList = new List<Hashtable>();

static void Main(string[] args)
{
Hashtable Start = new Hashtable();
Start["active"] = true;
Start["name"] = "prog1";
Start["path"] = @"C:\programfiles\prog1";
Start["parameter"] = string.Empty;

StartList.Add(Start);

Start = new Hashtable();
Start["active"] = false;
Start["name"] = "prog2";
Start["path"] = @"C:\programfiles\prog2";
Start["parameter"] = "/q";

StartList.Add(Start);

关于c# - C#中哈希表的ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3414565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com