Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird erläutert, wie Zwischenwerte für die Sortierung, Filterung und Auswahl in C# und Visual Basic berechnet werden.
Beispiel: Verwenden der let
-Klausel zum Berechnen basierend auf Elementdaten
Das folgende Beispiel verwendet die let
-Klausel, um Produkte von numerischen Werten aus Elementen zu berechnen. Es wird das XML-Dokument Beispiel-XML-Datei: Numerische Daten verwendet.
XElement root = XElement.Load("Data.xml");
IEnumerable<decimal> extensions =
from el in root.Elements("Data")
let extension = (decimal)el.Element("Quantity") * (decimal)el.Element("Price")
where extension >= 25
orderby extension
select extension;
foreach (decimal ex in extensions)
Console.WriteLine(ex);
Dim root As XElement = XElement.Load("Data.xml")
Dim extensions As IEnumerable(Of Decimal) = _
From el In root.<Data> _
Let extension = CDec(el.<Quantity>.Value) * CDec(el.<Price>.Value) _
Where extension > 25 _
Order By extension _
Select extension
For Each ex As Decimal In extensions
Console.WriteLine(ex)
Next
Dieses Beispiel erzeugt die folgende Ausgabe:
55.92
73.50
89.99
198.00
435.00
Beispiel: Berechnen aus XML, das sich in einem Namespace befindet
Im folgenden Beispiel wird dieselbe Abfrage wie zuvor gezeigt, jedoch für XML in einem Namespace. Es wird das XML-Dokument Beispiel-XML-Datei: Numerische Daten in einem Namespace verwendet.
Weitere Informationen finden Sie unter Übersicht über Namespaces.
XElement root = XElement.Load("DataInNamespace.xml");
XNamespace ad = "http://www.adatum.com";
IEnumerable<decimal> extensions =
from el in root.Elements(ad + "Data")
let extension = (decimal)el.Element(ad + "Quantity") * (decimal)el.Element(ad + "Price")
where extension >= 25
orderby extension
select extension;
foreach (decimal ex in extensions)
Console.WriteLine(ex);
Imports <xmlns="http://www.adatum.com">
Module Module1
Sub Main()
Dim root As XElement = XElement.Load("DataInNamespace.xml")
Dim extensions As IEnumerable(Of Decimal) = _
From el In root.<Data> _
Let extension = CDec(el.<Quantity>.Value) * CDec(el.<Price>.Value) _
Where extension > 25 _
Order By extension _
Select extension
For Each ex As Decimal In extensions
Console.WriteLine(ex)
Next
End Sub
End Module
Dieses Beispiel erzeugt die folgende Ausgabe:
55.92
73.50
89.99
198.00
435.00