다음을 통해 공유


XPathNavigator.NavigatorComparer 속성

정의

XPathNavigator 개체의 같음 비교에 사용되는 IEqualityComparer를 가져옵니다.

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

속성 값

XPathNavigator 개체의 같음 비교에 사용되는 IEqualityComparer입니다.

예제

다음 예제에서는 사용 하는 속성입니다 NavigatorComparer .

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

이 예제에서는 books.xml 파일을 입력으로 사용합니다.

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

설명

속성을 NavigatorComparer 사용하면 개체에 XPathNavigator 대한 참조가 아닌 위치에 따라 개체를 비교할 수 있습니다. 이 ComparePosition 클래스에서 구현된 및 Equals 메서드는 매개 변수로 전달된 개체의 XPathNavigator 위치를 기반으로 합니다. 이 클래스에서 구현된 메서드는 GetHashCode 로컬 이름 및 네임스페이스 URI와 같은 노드의 속성을 사용하여 노드에 대한 해시 코드를 만듭니다.

적용 대상