//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(); }
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); }