繁体   English   中英

C# 相同的项目使用 Foreach 循环不断添加到列表中

[英]C# The same item is keep adding to list using Foreach loop

我正在尝试通过 xml 文档 go 并使用 foreach 循环为每个节点添加一些属性值到列表中。 我正在访问 xml 文档的右侧部分,但是在 foreach 循环的每次迭代之后,所有值都被新的值覆盖。 所以最后有一个所有相同项目的列表。

IEnumerable<XElements> accesses = steps.Descendants("Access").Where(acc => acc.Attributes("Scope").First().Value == "GlobalVariable);
    foreach (XElement access in accesses)
    {
        IEnumerable<XElement> accessComponent = access.Descendants("Component").ToList();
        newGlobVar.DbName = accessComponent.First().Attribute("Name")?.Value;
        newGlobVar.TagName = accessComponent.ElementAt(1).First().Attribute("Name")?.Value;
      
    globalVariables.Add(newGlobVar);
    }
return globalVariables;

您只有一个 newGlobVar 变量实例,并且您更改了它的属性。 这就是为什么添加的项目的属性也会发生变化。 您必须为每个 foreach 循环创建一个变量的新实例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM