gpt4 book ai didi

C# - 通用列表 - 无法清除并重新添加

转载 作者:行者123 更新时间:2023-11-30 22:45:10 25 4
gpt4 key购买 nike

问题是..我有一组列表 ID .. 每个都与数据库中的一组流量 ID 相关..

我想为每个循环使用一个列表 ID 来获取那组 TL ID 并将它们存储在一个列表中,但以类的方式存储!

当我不在开头添加 TL_ids.Clear(); 时......所有结果都会被添加,因此最终结果变为 = 所有交通灯 ID 的计数......

当我在 Par.Clear(); 之前清除时所有结果都返回 Zeros。

有什么帮助吗?

List<int> TL_ids = new List<int>();
List<string> TL_Desc = new List<string>();

//Array That will Hold Role ID.
ArrayList Par = new ArrayList();
//Get All Traffic Lights info. , but based on Iteration of Lists IDs.
for (int i = 0; i < List_IDs.Count; i++)
{
Par.Clear();
Par.Add(new SqlParameter("@List_id", List_IDs[i].ToString()));
SqlDataReader Dr = GetTLs.ExecSPSelect_dr("GetTLsByListID", Par);

while (Dr.Read())
{
//Fill Intermediate Lists.
TL_ids.Add(int.Parse(Dr[0].ToString()));
TL_Desc.Add(Dr[1].ToString());
}

ALL_TLsBy_Lists.Add(new Lists(List_IDs[i], TL_ids, TL_Desc));
}

最佳答案

希望我答对了你的问题。

列表通过引用传递。

在创建 new Lists(...) 时,您必须在每次迭代中创建一个新列表。

for (int i = 0; i < List_IDs.Count; i++)
{
TL_ids = new List<int>();
TL_Desc = new List<string>();
...
}

否则,您最终会得到多个具有相同 TL_idsTL_DescLists 对象!

因此,如果您在上一次迭代中清除 TL_Desc,您将在所有 Lists 对象中得到一个空列表。

关于C# - 通用列表 - 无法清除并重新添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3175224/

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