我使用 Linq to XML 已经有一段时间了,但离它的高级用户还很远。每隔一段时间,我都会查看我的代码并说,“必须有一种更有效的方法来做到这一点”,所以我想看看 StackOverflow 的世界是否知道一种改进以下内容的方法代码。正在完成的是向该方法提供一个简单的方法,该方法List<string>
具有要从 XML 文件中保存的系统记录中删除的软件列表。
var xe = (from el in mainForm.xeSystemData.Elements("System")
where el.Element("Name").Value == systemName
select el.Element("SoftwareList"));
foreach (string sw in softwareToRemove)
{
foreach (var v in xe.Elements("Software"))
{
if (v.Value.ToString() == sw)
{
v.Remove();
}
}
}
以下是供参考的 XML 片段:
<SoftwareList>
<Software>IBM Client Access</Software>
<Software>Adobe Acrobat Reader 10.1</Software>
</SoftwareList>
我一直在想的是,有一种更快的方法可以利用 Linq to XML 来删除选择性元素,而无需创建两个 foreach 循环。