object[] selectValues(object[] pKeys) { if (pKeys == null) { pKeys = new object[0]; } List <object> list = new List <object>(); foreach (object[] arr in data) { if (pKeys.Length < arr.Length) { bool select_ = ToolArray.isEqual(pKeys, ToolArray.resize <object>(arr, pKeys.Length)); if (select_) { if (pKeys.Length < arr.Length) { object val_ = arr[pKeys.Length]; if (!list.Contains(val_)) { list.Add(val_); } } } } } return(list.ToArray()); }
public static object[][] getGroups(DataTable table, string[] colsArr) { List <object[]> list = new List <object[]>(); DataColumn[] colsObj = new DataColumn[colsArr.Length]; for (int i = 0; i < colsArr.Length; ++i) { colsObj[i] = table.Columns[colsArr[i]]; } foreach (DataRow row in table.Rows) { object[] curValues = ToolRow.copyRowToArr(colsObj, row); foreach (object[] arr in list) { if (ToolArray.isEqual(arr, curValues)) { curValues = null; break; } } if (curValues != null) { list.Add(curValues); } } list.Sort(new ToolArray.Comparer()); return(list.ToArray()); }