我有一个像下面这样的xml:
<Table>
<Record>
<Field>Value1_1</Field>
<Field>Value1_2</Field>
</Record>
<Record>
<Field>Value2_1</Field>
<Field>Value2_2</Field>
</Record>
</Table>
Run Code Online (Sandbox Code Playgroud)
我想要的是一个LINQ查询,它生成一个IEnumerable,我可以将其指定为DataGrid的数据源.我到目前为止的内容如下:
var temp = from record in table.Elements("Record")
select record.Element("Field").Value
Run Code Online (Sandbox Code Playgroud)
我可以拥有多个场元素的事实是我的绊脚石.
在上面的例子中,我需要的是类似的东西IEnumerable<string,string>.datagrid看起来像这样:
Value1_1, Value1_2
Value2_1, Value2_2
Run Code Online (Sandbox Code Playgroud)
Ric*_*gan 10
这样的事情有帮助吗?
var a = from record in table.Elements("Record")
select new
{
one = (string)record.Elements().ElementAt(0),
two = (string)record.Elements().ElementAt(1)
};
Run Code Online (Sandbox Code Playgroud)
您可以将调用链接到Elements():
var temp = from field in table.Elements("Record").Elements("Field")
select field.Value;
Run Code Online (Sandbox Code Playgroud)
您还可以使用Descendants():
var temp = from field in table.Descendants("Field")
select field.Value;
Run Code Online (Sandbox Code Playgroud)
但是,这将返回 <Table> 下的所有 <Field> 元素,即使它们不在 <Record> 元素内。