gpt4 book ai didi

c# - LINQ 从 XDocument 查询结果

转载 作者:太空宇宙 更新时间:2023-11-03 18:34:39 26 4
gpt4 key购买 nike

我从资源文件中存储了所有数据元素,如下所示:

XDocument xDocTranslated = XDocument.Load(TranslatedFile);
var resultTranslated = from item in xDocTranslated.Descendants("data")
select new
{
Name = (string)item.Attribute("name"),
Value = (string)item.Element("value")
};

我有一个字符串列表,我想将其与上面的结果进行比较,如果它们匹配,我想存储新值。

我正在尝试这样的事情:

//Get each string that i want to translate
foreach (var name in StringsToTranslatelist)
{
//Look up the translated value from data extracted from xml file
var value= from entry in resultTranslated
where entry.Name == name; <--this does not work

}

我应该在这里使用的 LINQ 语句是什么??我如何搜索 resultTranslated ??

最佳答案

您似乎只想获取指定名称的匹配值,在这种情况下,您希望使用将返回标量值的标准查询运算符,例如 Single:

var value = resultTranslated.Single(r => r.Name == name).Value;

Single 将在没有匹配项或有多个匹配项时抛出异常。

或者,如果您想获得第一个结果(如果没有则抛出异常),您可以使用 First,或者 SingleOrDefaultFirstOrDefault 并根据您的要求自行进行 null 检查。

关于c# - LINQ 从 XDocument 查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17113518/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com