XPathNavigator.NavigatorComparer Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém um IEqualityComparer usado para a comparação de igualdade de objetos XPathNavigator.
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
Valor da propriedade
Um IEqualityComparer usado para comparação de igualdade de XPathNavigator objetos.
Exemplos
O exemplo a seguir ilustra o uso da NavigatorComparer propriedade.
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']")))
O exemplo usa o arquivo books.xml
como entrada.
<?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>
Comentários
A NavigatorComparer propriedade permite que XPathNavigator os objetos sejam comparados com base na posição em vez de referência ao objeto. Os ComparePosition métodos e Equals os métodos implementados por essa classe baseiam-se na posição dos XPathNavigator objetos passados como parâmetros. O GetHashCode método implementado por essa classe usa as propriedades do nó, como o nome local e o URI do namespace, para criar um código de hash para o nó.