c# 每次传入一个数值 放回最大和最小,在把返回的最大最小与传入的值比较
时间: 2024-09-23 22:11:27 浏览: 38
在C#中,你可以创建一个名为`GetMinMax`的静态方法,它接收一个数字作为输入,并返回该数字与其之前遇到的所有数字中的最大值和最小值。这里是一个简单的示例:
```csharp
public static (int Max, int Min) GetMinMax(int value)
{
static (int max, int min) _cache = (int.MaxValue, int.MinValue); // 使用静态字段保存初始值
if (value > _cache.max)
{
_cache = (_cache.max, value);
}
else if (value < _cache.min)
{
_cache = (_cache.min, value);
}
return _cache;
}
// 使用示例
int num1 = 5;
int num2 = 10;
int num3 = -3;
var result1 = GetMinMax(num1); // 结果可能是(5, -3)
var result2 = GetMinMax(num2); // 结果可能是(10, -3)
var result3 = GetMinMax(num3); // 结果可能是(10, -3)
// 然后你可以比较当前传入的值与缓存的结果
if (num1 > result1.Max || num1 < result1.Min)
{
Console.WriteLine($"Num1 ({num1}) vs cached max/min ({result1.Max}, {result1.Min}): {num1}");
}
```
在这个例子中,`GetMinMax`方法内部维护了一个元组 `_cache`,用于存储当前找到的最大值和最小值。每次传递新的数字,都会更新这个缓存。
阅读全文