示例#1
0
        public static IEnumerable Distinct(IEnumerable items, IInvoker param, IComparer comparer = null)
        {
            var oldValue = (object)null;
            var list     = items.Cast <object>().ToList();

            ListHelper.QuickSort(list, comparer ?? ((IInvokerExtension)param).CreateComparer(param.TargetType, ListSortDirection.Descending));
            foreach (var item in list)
            {
                var newValue = param.GetValue(item);
                if (!Equal(newValue, oldValue))
                {
                    oldValue = newValue;
                    if (newValue != null)
                    {
                        yield return(item);
                    }
                }
            }
        }
示例#2
0
 public void Sort(IComparer <T> comp)
 {
     ListHelper.QuickSort <T>(items, comp);
 }
示例#3
0
 public void SortInternal()
 {
     ListHelper.QuickSort <T>(items, comparer);
 }
示例#4
0
 public virtual void ApplySortInternal(IComparer <T> comparer)
 {
     this.comparer = comparer;
     ListHelper.QuickSort <T>(items, this.comparer);
     //_items.Sort(comparer);
 }