字典词典失去了它的价值
本文关键字:失去 字典 | 更新日期: 2023-09-27 18:30:58
Dictionary<string, string> f = new Dictionary<string, string>();
Dictionary<int, Dictionary<string, string>> lines = new Dictionary<int, Dictionary<string, string>>();
while ((line = sr.ReadLine()) != null)
{
lineArr = line.Split(',');
int x = 0;
foreach (string field in lineArr)
{
f.Add(keys[x], field);
x++;
}
lines.Add(lineIndex, f);
f.Clear();
lineIndex++;
字典 f 是临时的,我想将其值存储在另一个字典中,但是一旦我清除() 它,字典行中的值就会丢失,我想它提供了某种参考。知道如何解决这个问题吗?
将f
的声明移动到循环中。这样,您就不必每次都清空它,并且引用保持不变:
Dictionary<int, Dictionary<string, string>> lines = new Dictionary<int, Dictionary<string, string>>();
while ((line = sr.ReadLine()) != null)
{
Dictionary<string, string> f = new Dictionary<string, string>();
lineArr = line.Split(',');
int x = 0;
foreach (string field in lineArr)
{
f.Add(keys[x], field);
x++;
}
lines.Add(lineIndex, f);
lineIndex++;
变量f
包含对Dictionary<string, string>
对象的引用。将其添加到另一个字典时,不会创建新对象,只会创建对同一对象的另一个引用。
我强烈建议在这里选择f = new Dictionary<string, string>()
作为阻力最小的路径。