gpt4 book ai didi

c# - Dictionary> 的所有值都与最后输入的值相同

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

我有一个字符串字典作为键,列表作为值。

并按以下方式添加条目:-

allDDLs = new Dictionary<string, List<string>>();
List<string> temp;
temp = ddlData.get("INV_DDL_Access_Mechanism", "Type");
allDDLs.Add("Access_Mechanism", temp);
temp = ddlData.get("INV_DDL_Application_Operating_System", "OS_Name");

像这样,共有18个条目。但是当我调试代码时,我发现所有的值都与上次输入的值相同。但是 key 没问题。

例如,当我获得“INV_DDL_Access_Mechanism”的值时,我得到的值与“INV_DDL_Application_Operating_System”的值相同。

我不知道它有什么问题。任何帮助,将不胜感激。 :-)

提前致谢!

编辑 1:访问字典值的代码:

List<string> listOfColumns = allDDLs.Keys.ToList<string>();


for(int i = 0; i < listOfColumns.Count(); ++i) {
string columnName = listOfColumns[i].ToString();
List<string> tempDDL = new List<string>();
tempDDL = allDDLs[columnName];
List<string> columnValues = DataColumnToList(columnName, excelDataSet.Tables[0]);
for (int j = 0; j < columnValues.Count(); ++j ) {
if (!tempDDL.Contains(columnValues[j])) {
errorReport.Rows[j][columnName.ToString()] = columnValues[j].ToString() + "LOLOLOL";
}
}
}

编辑 2:“get”方法的代码。

public List<string> get(string tableName, string parameter) {
ds.Clear();
valuesForDDL.Clear();
ds = objDatabase.ByText("Select distinct " + parameter + " from " + tableName + " where Del_Status = 'Available'");
foreach (DataRow row in ds.Tables[0].Rows) {
valuesForDDL.Add(row.ItemArray[0].ToString());
}
return valuesForDDL;
}

最佳答案

你在评论中说:

I clear the list in that code before adding new items to it. And then return the list.

这可能是问题,...如果您返回相同 List<string>每次调用ddlData.get() (使用实例/静态字段或属性)你只需执行 List<string>.Clear()覆盖最后返回列表的内容。

在你的ddlData.get()你应该做一个new List<string>()而不是 Clear()正在访问现有列表。

如果这不是您的问题,请发布更多代码(尤其是 ddlData.get() 方法或整个类)。

关于c# - Dictionary<string, List<string>> 的所有值都与最后输入的值相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7454286/

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