Esempio n. 1
0
 //private string property;
 public SortIndex(DBTable list, string property)
 {
     this.row  = list.NewItem(DBUpdateState.Default);
     this.list = list;
     //this.property = property;
     if (list.Columns.Contains(property))
     {
         column   = list.Columns[property];
         comparer = column.CreateComparer(ListSortDirection.Ascending);
     }
     else
     {
         comparer = new InvokerComparer(typeof(DBItem), property, ListSortDirection.Ascending);
     }
     Refresh();
 }
Esempio n. 2
0
        public List <DBGroup <T> > GroupBy(DBColumn column)
        {
            items.Sort((IComparer <T>)column.CreateComparer(ListSortDirection.Ascending));
            var         groups = new List <DBGroup <T> >();
            DBGroup <T> group  = null;

            foreach (T item in items)
            {
                if (group == null || !group.Value.Equals(item[column]))
                {
                    group = new DBGroup <T> {
                        Value = item[column]
                    };
                    groups.Add(group);
                }
                group.List.Add(item);
            }
            return(groups);
        }