Beispiel #1
0
        /// <summary>
        /// Comparers <paramref name="obj1"/> and <paramref name="obj2"/>.
        /// </summary>
        /// <param name="obj1">Object 1.</param>
        /// <param name="obj2">Object 2.</param>
        /// <param name="settings">Instance of <see cref="ComparisonSettings"/> class.</param>
        /// <returns>true if the objects are considered equal; otherwise, false.</returns>
        public bool Compare(object obj1, object obj2, ComparisonSettings settings)
        {
            var isObj1Default = obj1?.Equals(_defaultValue) != false || obj1.Equals(_typeDefaultValue);
            var isObj2Default = obj2?.Equals(_defaultValue) != false || obj2.Equals(_typeDefaultValue);

            return((isObj1Default && isObj2Default) || _valueComparer.Compare(obj1, obj2, settings));
        }
Beispiel #2
0
        public int CompareTo(object obj)
        {
            var objResolved = obj is LambdaParameterWrapper ? ((LambdaParameterWrapper)obj).Value : obj;
            var cmpRes      = Cmp.Compare(Value, objResolved);

            if (!cmpRes.HasValue)
            {
                throw new ArgumentException();
            }
            return(cmpRes.Value);
        }
Beispiel #3
0
        /*public void Sort()
         * {
         *  for(var i=0;i<_list.Count-1;i++)
         *      for (var j = i + 1; j < _list.Count; j++)
         *      {
         *          var left = (Book) _list[i];
         *          var right = (Book) _list[j];
         *          if (left.Id > right.Id)
         *          {
         *              //Swap
         *              var temp = left;
         *              _list[i] = _list[j];
         *              _list[j] = temp;
         *          }
         *      }
         * }*/

        public void Sort(IValueComparer <T> comparer)
        {
            for (var i = 0; i < _list.Count - 1; i++)
            {
                for (var j = i + 1; j < _list.Count; j++)
                {
                    var left       = (T)_list[i];
                    var right      = (T)_list[j];
                    var shouldSwap = comparer.Compare(left, right) == 1;
                    if (shouldSwap)
                    {
                        var temp = _list[i];
                        _list[i] = _list[j];
                        _list[j] = temp;
                    }
                }
            }
        }