gpt4 book ai didi

c# - 每次迭代后,全局列表都采用新值并且不保留前一个值

转载 作者:太空狗 更新时间:2023-10-30 01:16:42 24 4
gpt4 key购买 nike

public class trials
{
public string Tname;
public List<String> Item=new List<string>();
public List<String> Duration = new List<string>();
}

List<trials> mtrials = new List<trials>();

List<String> temp_Item = new List<string>();
List<String> temp_Duration = new List<string>();

private void button8_Click(object sender, EventArgs e)
{
mtrials.Add(new trials {
Tname = textBox9.Text,
Item = temp_Item,
Duration = temp_Duration });
temp_Duration.Clear();
temp_Item.Clear();
}

mtrialstemp_Itemtemp_duration 是全局列表。我的问题是每次迭代后 mtrials 值也会发生变化。我不知道为什么会这样,因为一旦我将值赋予 mlist,我就会清除它们以便我可以保存新值。 temp_itemtemp_duration 用作保存大量数据的列表。

最佳答案

当您在列表上运行 Clear() 时,您正在修改您刚才给 mtrials 的相同引用。

mtrials.Add(new trials { 
Tname = textBox9.Text,
Item = temp_Item, //<--- This is pointing to the same list
Duration = temp_Duration });
temp_Item.Clear(); //<--- As this one. You need to create a new list instead.

将 clears 替换为:

temp_Duration = new List<string>();
temp_Item = new List<string>()

关于c# - 每次迭代后,全局列表都采用新值并且不保留前一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34305312/

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