问题:
你需要在项目中使用一个泛型Dictionary对象,它在值中仅存储预定义最大值和最小值之间的数值数据(键可以是任意类型)。
解决方案:
创建一个类,它带有强制执行这些边界的访问器和方法。例2-2中所示的类MinMaxValueDictionary只允许存储实现了IComparable接口的类型,并且其值位于最大值和最小值之间。
例2-2:创建具有最小值和最大值边界的字典:
[Serializable]
public class MinMaxValueDictionary<T, U>
where U : IComparable<U>
{
protected Dictionary<T, U> internalDictionary = null;
public MinMaxValueDictionary(U minValue, U maxValue)
{
this.MinValue = minValue;
this.MaxValue = maxValue;
internalDictionary = new Dictionary<T, U>();
}
#pragma warning disable CSE0002 // Use getter-only auto properties
public U MinValue { get; private set; } = default(U);
public U MaxValue { get; private set; } = defa