私のようなデータを持つXMLファイルがあります。のC#/に属性値によってXML要素をソートするための最良の方法は何であるネット3.5
<Details>
<TableDef>
<Column Name="Calldate" HeaderName="Calldate" SourceColumnName="Calldate" IsHidden = "false" Position="4" />
<Column Name="Issue" HeaderName="Issues" SourceColumnName="Issues" IsHidden = "false" Position="3" />
<Column Name="ParamortizedValue" HeaderName="paramortizedvalue" SourceColumnName="Value" IsHidden = "false" Position="1" />
<Column Name="PercentBondTotal" HeaderName="percentbondtotal" SourceColumnName="Percentage" IsHidden = "false" Position="2" />
</TableDef>
</Details>
を私はフィルタリングするための最良かつ効率的な方法だろうかと思いました。そのソートされた要素をさらにコード内で使用できるように、要素を属性でソートします。
上記の例では、 "IsHidden = false"でフィルタし、要素を "Position"属性で並べ替える必要があります。すべてのソリューションのための
var doc = XDocument.Load("data.xml");
var nodeTableDefInfo = doc.XPathSelectElements("/Details");
var elements = nodeTableDefInfo.Elements("TableDef").Elements();
foreach (var e in elements)
{
//want to work on the sorted elements
}
みんな、ありがとう:
は、私は任意の並べ替えなしですべての要素を読み込みます、次のコードを持っています。私はあなたのソリューションを読むことができる前に、私はこの思い付いた:
var elements = nodeTableDefInfo.Elements("TableDef").Elements();
var sortedElements = (from element in elements
where element.Attribute("IsHidden").Value == "false"
orderby element.Attribute("Position").Value ascending
select element);
foreach (var e in sortedElements)
{
//work on the sorted elements
}
は今、解決策を経て、私は本当にGFK
が提供するソリューションとの説明が好きでした。私はnullを処理する必要があると思います。皆さんありがとう。
また、あなたは第二の例から放出されたきたことに基づいてフィルタリングできます。 –
本当に、それを確実に破棄したいかどうかによって異なります。 –
私は解決策と説明が好きでした。ありがとう。 –