如何使用 LINQ 检索基于条件 URL="localhoist" 的 Supported 属性的特定值?谢谢。
<SomeSetting>
<Setting URL="abc.com" Supported="sb.new,mgrsma" />
<Setting URL="localhost" Supported="GG,LLmgrsma,FF1,FF3" />
<Setting URL="def.zxy.com" Supported="xyz" />
</SomeSetting>
最佳答案
像这样:
var localhost = doc.Descendants("Setting")
.Where(x => (string) x.Attribute("URL") == "localhost")
.Select(x => (string) x.Attribute("Supported"))
.FirstOrDefault();
一次一行:
- 首先选择所有“设置”元素;您也可以使用
someSetting.Elements("Setting")
执行此操作,其中someSetting
是SomeSetting
元素 - 添加一个 where 子句来过滤掉没有 localhost URL 的元素。我正在使用显式字符串转换而不是
Value
属性,以便它处理没有URL
属性的元素;在这种情况下,转换将返回 null - 选择
Supported
属性值 - 同样,如果URL=localhost
元素没有Supported
属性,这将返回 null。 - 选择第一个结果,如果没有结果则选择 null。如果您可能有多个元素并想检查所有元素,只需删除此调用即可。
关于c# - 带有 XML 问题的 LINQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3115947/