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++;
Run Code Online (Sandbox Code Playgroud)
字典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++;
Run Code Online (Sandbox Code Playgroud)