小编HNA*_*HNA的帖子

从不同的XML元素创建相同的LINQ匿名类型

我有一个这样的XML文件: - XML文件

请注意,每个<Field></Field>可具有不同的元件,如突出显示<I32><String>.我想在datagridview中显示元素名称,其中Type是元素的名称(I32或String或其他子元素<Field>): - 的DataGridView

到目前为止,我已经尝试过此代码,但它返回了An unhandled exception of type 'System.NullReferenceException'.

XDocument doc = XDocument.Load("GetLotDetails.xml");
var data = doc.Descendants("Document").Where(x => (String)x.Attribute("name") == "DATA").SelectMany(x => x.Elements("Field"));
var query = from d in data
            let str = d.Element("String").Name
            let other = d.Element("I32").Name
            select new
            {
                 Name = d.Attribute("name").Value,
                 Type = str.Equals("String") ? "String" : (other.Equals("I32") ? "I32" : null),        
                 Value = d.Value,
            };
dataGridView1.DataSource = query.ToList();
Run Code Online (Sandbox Code Playgroud)

所以这个想法就是让匿名Type = *whatever element name under …

c# xml linq winforms

3
推荐指数
1
解决办法
60
查看次数

标签 统计

c# ×1

linq ×1

winforms ×1

xml ×1