我想通过属性找到一个节点并将其移动到底部。
XNode node = doc.Root.Elements().Where(e => e.Attribute("id").Value == "123").FirstOrDefault();
if (node != null)
{
node.Root.Elements().Where(s => e.Attribute("id").Value == "123").Remove();
doc.Root.Add(node);
}
这并不总是有效。在 .Remove() 行上,我有时会收到 nullReferenceException。所以我猜这意味着它匹配并在 FirstOrDefault() 上获得了一个节点,但随后两行完全相同的 linq 查询没有匹配任何内容。没有看到这是怎么可能的。我错过了什么吗?没有任何东西同时触及这个文件或任何东西。