微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在属性中选择XElements …(LINQ2XML)

如何选择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);

解决方法

假设模块是一个字符串,问题是您正在将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.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。