-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Expand file tree
/
Copy pathIComparer.xml
More file actions
164 lines (146 loc) · 10.8 KB
/
IComparer.xml
File metadata and controls
164 lines (146 loc) · 10.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<Type Name="IComparer" FullName="System.Collections.IComparer">
<TypeSignature Language="C#" Value="public interface IComparer" />
<TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IComparer" FrameworkAlternate="dotnet-uwp-10.0;net-5.0;net-6.0;net-7.0;netcore-1.0;netcore-1.1;netcore-2.0;netcore-2.1;netcore-2.2;netcore-3.0;netcore-3.1;netframework-1.1;netframework-2.0;netframework-3.0;netframework-3.5;netframework-4.0;netframework-4.5;netframework-4.5.1;netframework-4.5.2;netframework-4.6;netframework-4.6.1;netframework-4.6.2;netframework-4.7;netframework-4.7.1;netframework-4.7.2;netframework-4.8;netframework-4.8.1;netstandard-1.0;netstandard-1.1;netstandard-1.2;netstandard-1.3;netstandard-1.4;netstandard-1.5;netstandard-1.6;netstandard-2.0;netstandard-2.1" />
<TypeSignature Language="DocId" Value="T:System.Collections.IComparer" />
<TypeSignature Language="VB.NET" Value="Public Interface IComparer" />
<TypeSignature Language="F#" Value="type IComparer = interface" />
<TypeSignature Language="C++ CLI" Value="public interface class IComparer" />
<TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract beforefieldinit IComparer" FrameworkAlternate="net-10.0;net-11.0;net-8.0;net-9.0" />
<AssemblyInfo>
<AssemblyName>System.Runtime</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.10.0</AssemblyVersion>
<AssemblyVersion>4.0.20.0</AssemblyVersion>
<AssemblyVersion>4.1.0.0</AssemblyVersion>
<AssemblyVersion>4.2.0.0</AssemblyVersion>
<AssemblyVersion>4.2.1.0</AssemblyVersion>
<AssemblyVersion>4.2.2.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
<AssemblyVersion>10.0.0.0</AssemblyVersion>
<AssemblyVersion>11.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>mscorlib</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>2.0.5.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>netstandard</AssemblyName>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>2.1.0.0</AssemblyVersion>
</AssemblyInfo>
<TypeForwardingChain>
<TypeForwarding From="mscorlib" FromVersion="4.0.0.0" To="System.Runtime" ToVersion="0.0.0.0" FrameworkAlternate="dotnet-uwp-10.0" />
<TypeForwarding From="netstandard" FromVersion="2.1.0.0" To="System.Runtime" ToVersion="10.0.0.0" FrameworkAlternate="net-10.0" />
<TypeForwarding From="netstandard" FromVersion="2.1.0.0" To="System.Runtime" ToVersion="11.0.0.0" FrameworkAlternate="net-11.0" />
<TypeForwarding From="netstandard" FromVersion="2.1.0.0" To="System.Runtime" ToVersion="5.0.0.0" FrameworkAlternate="net-5.0" />
<TypeForwarding From="netstandard" FromVersion="2.1.0.0" To="System.Runtime" ToVersion="6.0.0.0" FrameworkAlternate="net-6.0" />
<TypeForwarding From="netstandard" FromVersion="2.1.0.0" To="System.Runtime" ToVersion="7.0.0.0" FrameworkAlternate="net-7.0" />
<TypeForwarding From="netstandard" FromVersion="2.1.0.0" To="System.Runtime" ToVersion="8.0.0.0" FrameworkAlternate="net-8.0" />
<TypeForwarding From="netstandard" FromVersion="2.1.0.0" To="System.Runtime" ToVersion="9.0.0.0" FrameworkAlternate="net-9.0" />
</TypeForwardingChain>
<Interfaces />
<Attributes>
<Attribute FrameworkAlternate="netframework-2.0;netframework-3.0;netframework-3.5;netframework-4.0;netframework-4.5;netframework-4.5.1;netframework-4.5.2;netframework-4.6;netframework-4.6.1;netframework-4.6.2;netframework-4.7;netframework-4.7.1;netframework-4.7.2;netframework-4.8;netframework-4.8.1">
<AttributeName Language="C#">[System.Runtime.InteropServices.ComVisible(true)]</AttributeName>
<AttributeName Language="F#">[<System.Runtime.InteropServices.ComVisible(true)>]</AttributeName>
</Attribute>
</Attributes>
<Docs>
<summary>Exposes a method that compares two objects.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
This interface is used in conjunction with the <xref:System.Array.Sort*?displayProperty=nameWithType> and <xref:System.Array.BinarySearch*?displayProperty=nameWithType> methods. It provides a way to customize the sort order of a collection. See the <xref:System.Collections.IComparer.Compare*> method for notes on parameters and return value. Its generic equivalent is the <xref:System.Collections.Generic.IComparer`1?displayProperty=nameWithType> interface.
The default implementation of this interface is the <xref:System.Collections.Comparer> class. For the generic version of this interface, see <xref:System.Collections.Generic.IComparer`1?displayProperty=nameWithType>.
## Examples
The following example uses the <xref:System.Collections.IComparer> interface to sort a string array. In this example, the <xref:System.Collections.IComparer.Compare*> method is implemented using the <xref:System.Collections.CaseInsensitiveComparer> class to reverse the order of the contents of the array.
:::code language="csharp" source="~/snippets/csharp/System.Collections/IComparer/reverse.cs":::
:::code language="vb" source="~/snippets/visualbasic/api/system.collections/icomparer/reverse.vb":::
]]></format>
</remarks>
<altmember cref="T:System.Collections.Comparer" />
<altmember cref="T:System.Collections.Generic.IComparer`1" />
<altmember cref="P:System.Threading.Thread.CurrentCulture" />
<altmember cref="T:System.Globalization.CompareInfo" />
<altmember cref="T:System.Globalization.CultureInfo" />
</Docs>
<Members>
<Member MemberName="Compare">
<MemberSignature Language="C#" Value="public int Compare (object x, object y);" FrameworkAlternate="dotnet-uwp-10.0;netcore-1.0;netcore-1.1;netcore-2.0;netcore-2.1;netcore-2.2;netframework-1.1;netframework-2.0;netframework-3.0;netframework-3.5;netframework-4.0;netframework-4.5;netframework-4.5.1;netframework-4.5.2;netframework-4.6;netframework-4.6.1;netframework-4.6.2;netframework-4.7;netframework-4.7.1;netframework-4.7.2;netframework-4.8;netframework-4.8.1;netstandard-1.0;netstandard-1.1;netstandard-1.2;netstandard-1.3;netstandard-1.4;netstandard-1.5;netstandard-1.6;netstandard-2.0;netstandard-2.1" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance int32 Compare(object x, object y) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Collections.IComparer.Compare(System.Object,System.Object)" />
<MemberSignature Language="VB.NET" Value="Public Function Compare (x As Object, y As Object) As Integer" />
<MemberSignature Language="F#" Value="abstract member Compare : obj * obj -> int" Usage="iComparer.Compare (x, y)" />
<MemberSignature Language="C++ CLI" Value="public:
 int Compare(System::Object ^ x, System::Object ^ y);" />
<MemberSignature Language="C#" Value="public int Compare (object? x, object? y);" FrameworkAlternate="net-10.0;net-11.0;net-5.0;net-6.0;net-7.0;net-8.0;net-9.0;netcore-3.0;netcore-3.1" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Runtime</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.10.0</AssemblyVersion>
<AssemblyVersion>4.0.20.0</AssemblyVersion>
<AssemblyVersion>4.1.0.0</AssemblyVersion>
<AssemblyVersion>4.2.0.0</AssemblyVersion>
<AssemblyVersion>4.2.1.0</AssemblyVersion>
<AssemblyVersion>4.2.2.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
<AssemblyVersion>10.0.0.0</AssemblyVersion>
<AssemblyVersion>11.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>mscorlib</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>2.0.5.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>netstandard</AssemblyName>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>2.1.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="x" Type="System.Object" />
<Parameter Name="y" Type="System.Object" />
</Parameters>
<Docs>
<param name="x">The first object to compare.</param>
<param name="y">The second object to compare.</param>
<summary>Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other.</summary>
<returns>A signed integer that indicates the relative values of <paramref name="x" /> and <paramref name="y" />:<br /> - If less than 0, <paramref name="x" /> is less than <paramref name="y" />.<br /> - If 0, <paramref name="x" /> equals <paramref name="y" />.<br /> - If greater than 0, <paramref name="x" /> is greater than <paramref name="y" />.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
The preferred implementation is to use the <xref:System.IComparable.CompareTo*> method of one of the parameters.
Comparing `null` with any type is allowed and does not generate an exception when using <xref:System.IComparable>. When sorting, `null` is considered to be less than any other object.
## Examples
The following example uses the <xref:System.Collections.IComparer> interface to sort a string array. In this example, the <xref:System.Collections.IComparer.Compare*> method is implemented using the <xref:System.Collections.CaseInsensitiveComparer> class to reverse the order of the contents of the array.
:::code language="csharp" source="~/snippets/csharp/System.Collections/IComparer/reverse.cs":::
:::code language="vb" source="~/snippets/visualbasic/api/system.collections/icomparer/reverse.vb":::
]]></format>
</remarks>
<exception cref="T:System.ArgumentException">Neither <paramref name="x" /> nor <paramref name="y" /> implements the <see cref="T:System.IComparable" /> interface.
-or-
<paramref name="x" /> and <paramref name="y" /> are of different types and neither one can handle comparisons with the other.</exception>
<altmember cref="T:System.IComparable" />
<altmember cref="P:System.Threading.Thread.CurrentCulture" />
<altmember cref="T:System.Globalization.CompareInfo" />
<altmember cref="T:System.Globalization.CultureInfo" />
</Docs>
</Member>
</Members>
</Type>