/// <inheritdoc /> /// <summary> /// Returns a hash code for an object. /// </summary> /// <param name="group">An object of type ComparableTuple2</param> /// <returns>A hash code for the object.</returns> public int GetHashCode(ComparableTuple2 <TItem0, TItem1> group) { var hash0 = group.Item0.GetHashCode(); var hash1 = group.Item1.GetHashCode(); var hash = 577 * hash0 + 599 * hash1; return(hash.GetHashCode()); }
/// <summary> /// This methods implements the IComparable ComparableTuple2 TItem0, TItem1 interface. /// </summary> /// <param name="group">The group being compared to this group</param> /// <returns> /// The value -1 if this groups is less than the passed group. /// The value 1 if this group is greater than the passed group. /// The value 0 if this group and the passed groups are equal. /// </returns> public int CompareTo(ComparableTuple2 <TItem0, TItem1> group) { var result = Item0.CompareTo(group.Item0); if (result == 0) { result = Item1.CompareTo(group.Item1); } return(result); }
/// <summary> /// Method to copy the data in another Sparse2DMatrix instance to this instance. /// </summary> /// <param name="sparse2DMatrix">An instance of the Sparse2DMatrix class.</param> private void Initialize(Sparse2DMatrix <TKey0, TKey1, TValue> sparse2DMatrix) { _dictionary.Clear(); // Copy each key value pair to the dictionary. foreach (KeyValuePair <ComparableTuple2 <TKey0, TKey1>, TValue> pair in sparse2DMatrix) { ComparableTuple2 <TKey0, TKey1> newCombinedKey = new ComparableTuple2 <TKey0, TKey1>(pair.Key); _dictionary.Add(newCombinedKey, pair.Value); } }
/// <summary> /// Method to copy the data in this Sparse2DMatrix instance to another instance. /// </summary> /// <param name="sparse2DMatrix">An instance of the Sparse2DMatrix class.</param> public void CopyTo(Sparse2DMatrix <TKey0, TKey1, TValue> sparse2DMatrix) { sparse2DMatrix._dictionary.Clear(); // Copy each key value pair to the dictionary. foreach (KeyValuePair <ComparableTuple2 <TKey0, TKey1>, TValue> pair in _dictionary) { ComparableTuple2 <TKey0, TKey1> newCombinedKey = new ComparableTuple2 <TKey0, TKey1>(pair.Key); sparse2DMatrix._dictionary.Add(newCombinedKey, pair.Value); } }
/// <summary> /// Constructs a new instance with the same item values as this instance. /// </summary> /// <param name="group">Base group</param> public ComparableTuple2(ComparableTuple2 <TItem0, TItem1> group) { Item0 = group.Item0; Item1 = group.Item1; }
/// <inheritdoc /> /// <summary> /// Compares the items in this group for equality. /// </summary> /// <param name="groupA">Group to compare</param> /// <param name="groupB">Group to compare</param> /// <returns>true if are equal groups; otherwise, false.</returns> public bool Equals(ComparableTuple2 <TItem0, TItem1> groupA, ComparableTuple2 <TItem0, TItem1> groupB) { return((groupA.Item0.Equals(groupB.Item0)) && (groupA.Item1.Equals(groupB.Item1))); }