Beispiel #1
0
        /// <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());
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
        /// <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);
            }
        }
Beispiel #4
0
        /// <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);
            }
        }
Beispiel #5
0
 /// <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;
 }
Beispiel #6
0
 /// <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)));
 }