如何选择属性所在的元素。。。(LINQ2XML)

如何选择属性所在的元素。。。(LINQ2XML),xml,linq,Xml,Linq,如何使用Linq选择id==id&&key==key的值 xml: 假设module是一个字符串,问题是您正在将XAttribute与字符串进行比较 以下是查询的固定版本: var value = (from l in localization.Elements("Localization").Elements("Module") where (string) l.Attribute("id") == module &&

如何使用Linq选择id==id&&key==key的值

xml:


假设
module
是一个字符串,问题是您正在将
XAttribute
字符串进行比较

以下是查询的固定版本:

var value = (from l in localization.Elements("Localization").Elements("Module")
             where (string) l.Attribute("id") == module && 
                   l.Element("Key").Value == key
             select l.Element("Value").Value);
请注意,我将
XAttribute
强制转换为字符串,而不是使用
Value
属性,因此如果
id
属性不存在,它将不匹配,而不是爆炸


如果需要单个值,应根据需要的语义对结果调用
single
First
SingleOrDefault
FirstOrDefault

thx!这对我来说很好,我在“localization.Elements(“本地化”).Elements(“模块”)方面也遇到了问题,我将其更改为:localization.Elements(),现在使用它:)
var value = (from l in localization.Elements("Localization").Elements("Module")
             where l.Attribute("id").Equals(module) && l.Element("Key").Value.Equals(key)
             select l.Element("Value").Value);
var value = (from l in localization.Elements("Localization").Elements("Module")
             where (string) l.Attribute("id") == module && 
                   l.Element("Key").Value == key
             select l.Element("Value").Value);