【发布时间】:2016-05-11 14:38:56
【问题描述】:
我熟悉 OrderBy linq 扩展方法,但似乎无法让我的查询返回任何结果 - 在使用 Linq 和 XElement 方法查找子元素的属性一段时间后!
我已经建立了一个 Xelements 列表,其中包含以下例如数据:
+ [0] {<Inserted>
<rowData ID="A7-6A-1B-0A-19-44-BF-0A-79-63-7D-AA-12-62-54-98" xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
<c r="A2">
<v>61108</v>
</c>
<c r="B2" t="s">
<v>7</v>
</c>
<c r="C2">
<v>1000111</v>
</c>
<c r="D2" t="s">
<v>8</v>
</c>
<c r="E2">
<v>200</v>
</c>
<c r="F2" t="s">
<v>9</v>
</c>
<c r="G2" t="s">
<v>10</v>
</c>
</rowData>
</Inserted>} System.Xml.Linq.XElement
+ [1] {<Inserted>
<rowData ID="6F-78-AB-C2-E9-8E-94-E7-18-96-97-DA-84-9C-E3-4C" xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
<c r="A7">
<v>611025</v>
</c>
<c r="B7" t="s">
<v>11</v>
</c>
<c r="C7">
<v>61004</v>
</c>
<c r="D7" t="s">
<v>12</v>
</c>
<c r="E7">
<v>40</v>
</c>
<c r="F7" t="s">
<v>10</v>
</c>
<c r="G7" t="s">
<v>10</v>
</c>
</rowData>
</Inserted>} System.Xml.Linq.XElement
+ [2] {<Deleted>
<rowData ID="CA-B9-3B-71-B9-FE-35-11-FF-AA-12-A7-24-96-09-9A" xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
<c r="A2">
<v>61008</v>
</c>
<c r="B2" t="s">
<v>7</v>
</c>
<c r="C2">
<v>1000111</v>
</c>
<c r="D2" t="s">
<v>8</v>
</c>
<c r="E2">
<v>200</v>
</c>
<c r="F2" t="s">
<v>9</v>
</c>
<c r="G2" t="s">
<v>10</v>
</c>
</rowData>
</Deleted>} System.Xml.Linq.XElement
如您所见,根标签可以是
编辑:我认为我在处理流畅的查询时遇到了困难,因为 rowData 元素与根的命名空间不同(只是猜测,因为我没有使用 xml 的经验)。我会尝试从该元素中删除 ns,因为它并不重要并继续尝试,但欢迎提供任何帮助
【问题讨论】:
-
您可以发布您尝试过的内容吗?
-
测试我?当然我会用例如编辑帖子: List
orderedList = finalList.OrderBy(x => x.Element(sourceDoc.Name.NamespaceName + "c").FirstAttribute.Value).ToList(); -
从排序的角度来看,您只关心每个
<rowData>部分的第一个<c>元素吗?或者您是否希望它也能渗透并使用后续元素? -
@RionWilliams 嗨,Rion,只有第一个就足够了 :)