私はOrderBy linq拡張メソッドに精通していますが、LinqとXElementメソッドを使ってかなり長い間再生した後にクエリを返すようには思えません。子要素!あなたは>ルートタグが<を挿入することができます>または<が削除された見ることができるように属性値でXElementのリストを並べ替えます
+ [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
:
私は、次の例のデータが含まれているXelementsのリストを構築しました。私の質問は簡単です(私の質問にもかかわらず!):私は、リストの最初または3番目の要素を最初に注文しなければならないように、c要素のr属性で注文する必要があります(値< cr = "A2" >、その後、リストの2番目の要素(< CR =「A7」>)
シンプルqeustionのため申し訳ありませんが注文したが、私は、少なくとも構文で再生しようと時間を費やしてきた!
EDIT :私は私の流暢なクエリとは、rowData要素がルートとは異なる名前空間を持っているという事実のために苦労していると思います(私はxmlでの作業経験がないので推測します)。それは重要ではないし、試してみてくださいどんな助けも歓迎です
試したことを投稿できますか? – sstan
私をテストしますか?リスト orderedList = finalList.OrderBy(x => x.Element(sourceDoc.Name.NamespaceName + "c")。FirstAttribute.Value).ToList(); –
notsoobvious
注文の観点からは、各「」セクションの最初の「」要素のみを気にしますか?それとも、この要素を細かくして、後続の要素も使用したいのですか? –