Example #1
0
        List <object> shellSort(List <object> objList)
        {
            int    i, j, inc;
            object temp;

            inc = 3;
            while (inc > 0)
            {
                for (i = 0; i < objList.Count; i++)
                {
                    j    = i;
                    temp = objList[i];
                    while ((j >= inc) && (!sortInfo.comparisonFunction(sortInfo.property.GetValue(objList[j - inc]),
                                                                       sortInfo.property.GetValue(temp))))
                    {
                        objList[j] = objList[j - inc];
                        j          = j - inc;
                    }
                    objList[j] = temp;
                }
                if (inc / 2 != 0)
                {
                    inc = inc / 2;
                }
                else if (inc == 1)
                {
                    inc = 0;
                }
                else
                {
                    inc = 1;
                }
            }
            return(objList);
        }
Example #2
0
        public List <object> Sort(List <object> objList, string sortPropertyName)
        {
            SortInfo sortInfo = new SortInfo(objList[0].GetType().GetProperty(sortPropertyName), sortPropertyName);

            for (int i = 0; i < objList.Count - 1; i++)
            {
                for (int j = 0; j < objList.Count - i - 1; j++)
                {
                    if (!sortInfo.comparisonFunction(sortInfo.property.GetValue(objList[j]), sortInfo.property.GetValue(objList[j + 1])))
                    {
                        object tmp = objList[j];
                        objList[j]     = objList[j + 1];
                        objList[j + 1] = tmp;
                    }
                }
            }
            return(objList);
        }