Beispiel #1
0
 public void Sort(RtItemSortOrder order)
 {
     if (order != RtItemSortOrder.Place)
     {
         Items.Sort(delegate(RtItem item1, RtItem item2)
         {
             return(CompareRtItems(item1, item2, order));
         });
     }
 }
Beispiel #2
0
        private static int CompareRtItems(RtItem item1, RtItem item2, RtItemSortOrder order)
        {
            if (item1 == null && item1 == null)
            {
                return(0);
            }
            else
            if (item1 == null)
            {
                return(-1);
            }
            else
            if (item1 == null)
            {
                return(1);
            }
            switch (order)
            {
            case RtItemSortOrder.Surname:
                if (!string.IsNullOrEmpty(item1.LastName) &&
                    !string.IsNullOrEmpty(item2.LastName))
                {
                    return(item1.LastName.CompareTo(item2.LastName));
                }
                break;

            case RtItemSortOrder.FirstName:
                if (!string.IsNullOrEmpty(item1.FirstName) &&
                    !string.IsNullOrEmpty(item2.FirstName))
                {
                    return(item1.FirstName.CompareTo(item2.FirstName));
                }
                break;

            case RtItemSortOrder.City:
                if (!string.IsNullOrEmpty(item1.City) &&
                    !string.IsNullOrEmpty(item2.City))
                {
                    return(item1.City.CompareTo(item2.City));
                }
                break;

            case RtItemSortOrder.Rating:
                return(Math.Sign(item2.Rating - item1.Rating));
            }

            return(Math.Sign(item1.Place - item2.Place));
        }