public int CompareTo(WeightedValue <TValue> other) { var valueComparer = Comparer <TValue> .Default; var result = valueComparer.Compare(Value, other.Value); return(result == 0 ? Weight.CompareTo(other.Weight) : result); }
public static TValue FromWeightedValue(WeightedValue <TValue> weightedValue) => weightedValue.Value;
public bool Equals(WeightedValue <TValue> other) => EqualityComparer <TValue> .Default.Equals(Value, other.Value) && other.Weight == Weight;