XPathNavigator.NavigatorComparer Propriété

Définition

Obtient un IEqualityComparer utilisé pour la comparaison d’égalité d’objets XPathNavigator.

public:
 static property System::Collections::IEqualityComparer ^ NavigatorComparer { System::Collections::IEqualityComparer ^ get(); };
public static System.Collections.IEqualityComparer NavigatorComparer { get; }
static member NavigatorComparer : System.Collections.IEqualityComparer
Public Shared ReadOnly Property NavigatorComparer As IEqualityComparer

Valeur de propriété

IEqualityComparer utilisé pour la comparaison d’égalité d’objets XPathNavigator.

Exemples

L’exemple suivant illustre l’utilisation de la NavigatorComparer propriété .

XPathDocument^ document = gcnew XPathDocument("books.xml");
XPathNavigator^ navigator = document->CreateNavigator();
Hashtable^ table = gcnew Hashtable(XPathNavigator::NavigatorComparer);

// Add nodes to the Hashtable.
for each (XPathNavigator^ navigator2 in navigator->Select("//book"))
{
    Object^ value = navigator2->Evaluate("string(./title)");
    table->Add(navigator2->Clone(), value);
    Console::WriteLine("Added book with title {0}", value);
}

Console::WriteLine(table->Count);
Console::WriteLine("Does the Hashtable have the book \"The Confidence Man\"?");
Console::WriteLine(table->Contains(navigator->SelectSingleNode("//book[title='The Confidence Man']")));
XPathDocument document = new XPathDocument("books.xml");
XPathNavigator navigator = document.CreateNavigator();
Hashtable table = new Hashtable(XPathNavigator.NavigatorComparer);

// Add nodes to the Hashtable.
foreach (XPathNavigator navigator2 in navigator.Select("//book"))
{
    object value = navigator2.Evaluate("string(./title)");
    table.Add(navigator2.Clone(), value);
    Console.WriteLine("Added book with title {0}", value);
}

Console.WriteLine(table.Count);
Console.WriteLine("Does the Hashtable have the book \"The Confidence Man\"?");
Console.WriteLine(table.Contains(navigator.SelectSingleNode("//book[title='The Confidence Man']")));
Dim document As XPathDocument = New XPathDocument("books.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()
Dim table As Hashtable = New Hashtable(XPathNavigator.NavigatorComparer)

' Add nodes to the Hashtable.
For Each navigator2 As XPathNavigator In navigator.Select("//book")
    Dim value As Object = navigator2.Evaluate("string(./title)")
    table.Add(navigator2.Clone(), value)
    Console.WriteLine("Added book with title {0}", value)
Next

Console.WriteLine(table.Count)
Console.WriteLine("Does the Hashtable have the book 'The Confidence Man'?")
Console.WriteLine(table.Contains(navigator.SelectSingleNode("//book[title='The Confidence Man']")))

L'exemple prend le fichier books.xml comme entrée.

<?xml version="1.0" encoding="utf-8" ?>   
<bookstore>  
    <book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0">  
        <title>The Autobiography of Benjamin Franklin</title>  
        <author>  
            <first-name>Benjamin</first-name>  
            <last-name>Franklin</last-name>  
        </author>  
        <price>8.99</price>  
    </book>  
    <book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2">  
        <title>The Confidence Man</title>  
        <author>  
            <first-name>Herman</first-name>  
            <last-name>Melville</last-name>  
        </author>  
        <price>11.99</price>  
    </book>  
    <book genre="philosophy" publicationdate="1991-02-15" ISBN="1-861001-57-6">  
        <title>The Gorgias</title>  
        <author>  
            <name>Plato</name>  
        </author>  
        <price>9.99</price>  
    </book>  
</bookstore>  

Remarques

La NavigatorComparer propriété permet XPathNavigator de comparer des objets en fonction de la position plutôt que de la référence à l’objet. Les ComparePosition méthodes et Equals implémentées par cette classe sont basées sur la position des XPathNavigator objets passés en tant que paramètres. La GetHashCode méthode implémentée par cette classe utilise les propriétés du nœud, telles que son nom local et son URI d’espace de noms, pour créer un code de hachage pour le nœud.

S’applique à