LINQ表达式来查找XElement并循环遍历每个可以添加到列表框中的属性
本文关键字:添加 列表 属性 查找 表达式 XElement 遍历 循环 LINQ | 更新日期: 2023-09-27 18:22:25
好的,这是我的基本XML结构:
<device
name="abc"
source1="True"
source2="True"
...
source19="False"
source20="False" />
我需要在文件中搜索与特定名称匹配的设备,然后循环浏览它的所有属性。所有为true的都将有一个基于添加到列表框中的选项#的用户友好字符串。我能理解第一部分,但不能理解循环,这似乎不是常见的做法。
我认为这应该能在中工作
XDocument doc = XDocument.Load("your XML");
var device = doc.Descendants("device").Select(item => item).Where(
item => item.Attribute("name").Value.ToString().Equals("some name")).FirstOrDefault();
if(null != device)
{
var items = device.Attributes().Select(item => item).Where(item => item.Value == "True");
if(null != items)
{
//you can also customize name according to your needs here
yourListBox.AddRange(items.Select( item => item.Name.ToString() ).ToList());
}
}