c#设计一个大小比较器,比较三个数字的大小
时间: 2024-09-11 08:06:55 浏览: 20
在C#中,你可以创建一个自定义的IComparer或Comparison委托来设计一个比较器,专门用于比较三个数字。这里是一个简单的例子,我们创建一个名为`ThreeNumberComparator`的类,它实现了IComparer<int>接口,并提供了一个Compare方法来进行比较:
```csharp
using System;
using System.Collections.Generic;
public class ThreeNumberComparator : IComparer<int[]>
{
public int Compare(int[] numbers)
{
if (numbers.Length != 3)
throw new ArgumentException("Input array must contain exactly three integers.");
// 按升序排列数字
var sortedNumbers = numbers.OrderBy(n => n).ToArray();
// 如果数组已经排序,则直接返回索引差表示顺序
return Array.IndexOf(sortedNumbers, numbers[0]) - Array.IndexOf(sortedNumbers, numbers[2]);
}
}
// 使用示例
class Program
{
static void Main(string[] args)
{
int[] numbersToSort = { 5, 1, 3 };
List<int[]> list = new List<int[]>
{
new int[] { 1, 2, 3 },
new int[] { 4, 5, 6 },
numbersToSort
};
list.Sort(new ThreeNumberComparator());
foreach (var numberSet in list)
{
Console.WriteLine($"Sorted numbers: {string.Join(", ", numberSet)}");
}