LINQ表达式来查找XElement并循环遍历每个可以添加到列表框中的属性

本文关键字:添加 列表 属性 查找 表达式 XElement 遍历 循环 LINQ | 更新日期: 2023-09-27 18:22:25

好的,这是我的基本XML结构:

 <device
    name="abc"
    source1="True"
    source2="True"
    ...
    source19="False"
    source20="False" />

我需要在文件中搜索与特定名称匹配的设备,然后循环浏览它的所有属性。所有为true的都将有一个基于添加到列表框中的选项#的用户友好字符串。我能理解第一部分,但不能理解循环,这似乎不是常见的做法。

LINQ表达式来查找XElement并循环遍历每个可以添加到列表框中的属性

我认为这应该能在中工作

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());
    }
}