Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
DocumentOrderComparer.cs
Go to the documentation of this file.
1
using
System.Collections.Generic
;
2
using
System.Xml.XPath
;
3
4
namespace
System.Xml.Xsl.Runtime
;
5
6
internal
sealed
class
DocumentOrderComparer
:
IComparer
<XPathNavigator>
7
{
8
private
List<XPathNavigator>
_roots
;
9
10
public
int
Compare
(
XPathNavigator
navThis
,
XPathNavigator
navThat
)
11
{
12
switch
(
navThis
.ComparePosition(
navThat
))
13
{
14
case
XmlNodeOrder
.Before:
15
return
-1;
16
case
XmlNodeOrder
.Same:
17
return
0;
18
case
XmlNodeOrder
.After:
19
return
1;
20
default
:
21
if
(
_roots
==
null
)
22
{
23
_roots
=
new
List<XPathNavigator>
();
24
}
25
if
(
GetDocumentIndex
(
navThis
) >=
GetDocumentIndex
(
navThat
))
26
{
27
return
1;
28
}
29
return
-1;
30
}
31
}
32
33
public
int
GetDocumentIndex
(
XPathNavigator
nav)
34
{
35
if
(
_roots
==
null
)
36
{
37
_roots
=
new
List<XPathNavigator>
();
38
}
39
XPathNavigator
xPathNavigator
= nav.
Clone
();
40
xPathNavigator
.MoveToRoot();
41
for
(
int
i = 0; i <
_roots
.
Count
; i++)
42
{
43
if
(
xPathNavigator
.IsSamePosition(
_roots
[i]))
44
{
45
return
i;
46
}
47
}
48
_roots
.
Add
(
xPathNavigator
);
49
return
_roots.Count
- 1;
50
}
51
}
System.Collections.Generic.Dictionary
Definition
Dictionary.cs:14
System.Collections.Generic.List.Count
int Count
Definition
List.cs:123
System.Collections.Generic.List.Add
void Add(T item)
Definition
List.cs:236
System.Xml.XPath.XPathNavigator.Clone
object ICloneable. Clone()
Definition
XPathNavigator.cs:705
System.Xml.XPath.XPathNavigator
Definition
XPathNavigator.cs:15
System.Xml.Xsl.Runtime.DocumentOrderComparer.Compare
int Compare(XPathNavigator navThis, XPathNavigator navThat)
Definition
DocumentOrderComparer.cs:10
System.Xml.Xsl.Runtime.DocumentOrderComparer._roots
List< XPathNavigator > _roots
Definition
DocumentOrderComparer.cs:8
System.Xml.Xsl.Runtime.DocumentOrderComparer.GetDocumentIndex
int GetDocumentIndex(XPathNavigator nav)
Definition
DocumentOrderComparer.cs:33
System.Xml.Xsl.Runtime.DocumentOrderComparer
Definition
DocumentOrderComparer.cs:7
System.Collections.Generic.IComparer
Definition
IComparer.cs:4
System.Collections.Generic
Definition
IHashKeyCollection.cs:1
System.Xml.XPath
Definition
Extensions.cs:5
System.Xml.Xsl.Runtime
Definition
AncestorDocOrderIterator.cs:4
System.Xml.XmlNodeOrder
XmlNodeOrder
Definition
XmlNodeOrder.cs:4
System.Xml.ValueHandleType.Dictionary
@ Dictionary
source
System.Private.Xml
System.Xml.Xsl.Runtime
DocumentOrderComparer.cs
Generated by
1.10.0