我希望你能帮我找到一个具有特定属性的节点,并将其移动到底部。
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查询两行后没有匹配到任何内容。我不明白这是怎么可能的。我是否漏掉了什么?这个文档也没有被同时访问或者其他操作。