如何选择id == id key ==与 Linq的关键 XML: Localization Module id="Customers" CultureCodede-DE/CultureCode KeyGeneral/Key ValueAllgemeine Kunden/Value /Module Module id="Contract" CultureCodede-DE/CultureCode KeyGeneral/Key ValueAl
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);假设模块是一个字符串,问题是您正在将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.