XPathNavigator.NavigatorComparer Vlastnost

Definice

IEqualityComparer Získá použití pro porovnání XPathNavigator rovnosti objektů.

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

Hodnota vlastnosti

IEqualityComparer

Používá IEqualityComparer se k porovnání XPathNavigator rovnosti objektů.

Příklady

Následující příklad znázorňuje použití NavigatorComparer vlastnosti.

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']")))

Příklad přebírá books.xml soubor jako vstup.

<?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>  

Poznámky

Vlastnost NavigatorComparer umožňuje XPathNavigator porovnávat objekty na základě pozice místo odkazu na objekt. Metody ComparePosition implementované Equals touto třídou jsou založeny na pozici XPathNavigator objektů předaných jako parametry. Metoda GetHashCode implementovaná touto třídou používá vlastnosti uzlu, jako je jeho místní název a identifikátor URI oboru názvů k vytvoření hash kódu pro uzel.

Platí pro