如何选择id == id&&的值? key ==与Linq的关键
的xml:
<Localization>
<Module id="Customers">
<CultureCode>de-DE</CultureCode>
<Key>General</Key>
<Value>Allgemeine Kunden</Value>
</Module>
<Module id="Contract">
<CultureCode>de-DE</CultureCode>
<Key>General</Key>
<Value>Allgemeine Verträge</Value>
</Module>
</localization>
这是我的方法
methode(字符串模块,字符串键)......
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);
答案 0 :(得分:7)
假设module
是一个字符串,问题是您要将XAttribute
与string
进行比较。
以下是查询的固定版本:
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
。