C# 如何在XDocument上使用SetElementValue

C# 如何在XDocument上使用SetElementValue,c#,xml,linq-to-xml,C#,Xml,Linq To Xml,这是我的xml示例 <?xml version="1.0"?> <SearchHistory> <Search> <title>Text 1</title> <count>0</count> </Search> <Search> <title>Text 2</title> <

这是我的xml示例

<?xml version="1.0"?>
<SearchHistory>
    <Search>
        <title>Text 1</title>
        <count>0</count>
    </Search>
    <Search>
        <title>Text 2</title>
        <count>0</count>
    </Search>
</SearchHistory>

进行更改后,必须保存
XDocument

xDoc.Save(fileName);

进行更改后,必须保存
XDocument

xDoc.Save(fileName);

有什么问题?除非所有
元素的值都不匹配
tbSearch.Text
,否则这应该按照您的预期进行。@FrédéricHamidi它们匹配。。。如果我在tbSearch.Text上输入了错误的值,它会引发异常。。。我没有发现任何错误,只是没有改变计数value@Loclip,如何验证计数值是否已更改?@FrédéricHamidi我在上述代码之前手动放置了一个,以确保change@CuongLe我给出了tbSearch.Text的值,这不是问题,问题是什么?除非所有
元素的值都不匹配
tbSearch.Text
,否则这应该按照您的预期进行。@FrédéricHamidi它们匹配。。。如果我在tbSearch.Text上输入了错误的值,它会引发异常。。。我没有发现任何错误,只是没有改变计数value@Loclip,如何验证计数值是否已更改?@FrédéricHamidi我在上述代码之前手动放置了一个,以确保change@CuongLe我给出了tbSearch.Text的值,这不是问题,为什么要投否决票?我已经尝试了他的代码,并且正确地调用了保存文件中的值…我不知道为什么他们否决了。。。这实际上是唯一有效的答案:为什么投反对票?我已经尝试了他的代码,并且正确地调用了保存文件中的值…我不知道为什么他们否决了。。。这实际上是唯一有效的答案:数据这只会在运行时更改值,如果您使用的是XML文件,则需要重写
XDocument
这只会在运行时更改值,如果您使用的是XML文件,则需要重写
XDocument
xdoc.Descendants("Search")
    .Where(x => x.Element("title").Value == tbSearch.Text)
    .Single()
    .Descendants("count")
    .Single()
    .Value = "1";