Welcome to mirror list, hosted at ThFree Co, Russian Federation.

Comparer.cs « System.Collections « corlib « class « mcs - github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 6591c70334c603a3c026b4f452eb932094f3d54c (plain)
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
//
// System.Collections.Comparer
//
// Author:
//   Sergey Chaban (serge@wildwestsoftware.com)
//


using System;
using System.Collections;


namespace System.Collections {

	[Serializable]
	public sealed class Comparer : IComparer {

		public static readonly Comparer Default;


		// Class constructor

		static Comparer ()
		{
			Default = new Comparer ();
		}



		// Public instance constructor

		private Comparer ()
		{
		}



		// IComparer

		public int Compare (object a, object b)
		{
			if (a == b)
				return 0;
			else if (a == null)
				return -1;
			else if (b == null)
				return 1;
			else if (a is IComparable)
				return (a as IComparable).CompareTo (b);
			else if (b is IComparable)
				return -(b as IComparable).CompareTo (a);

			throw new ArgumentException ("Neither a nor b IComparable");
		}
	}
}