public List <List <string> > DeleteAllSameLines() { List <List <string> > result = new List <List <string> >(); List <int> deletedColumns = new List <int>(); List <int> deletedRows = new List <int>(); deletedColumns = IndecesOfSameColumns(); deletedRows = IndecesOfSameRows(); for (int i = 0; i < ArrayStr.GetLength(0); i++) { List <string> str = new List <string>(); for (int k = 0; k < ArrayStr.GetLength(1); k++) { str.Add(ArrayStr[i, k]); } result.Add(str); } for (int n = deletedRows.Count - 1; n > -1; n--) //удаление строк { result.RemoveAt(deletedRows[n]); } for (int j = 0; j < result.Count; j++) { for (int z = deletedColumns.Count - 1; z > -1; z--) { result[j].RemoveAt(deletedColumns[z]); } } return(result); }
private bool IsColumnSame(int n) { for (int k = 0; k < ArrayStr.GetLength(0); k++) { if (!ArrayStr[0, n].Equals(ArrayStr[k, n])) { return(false); } } return(true); }
private bool IsRowSame(int n) { for (int i = 0; i < ArrayStr.GetLength(1); i++) { if (!ArrayStr[n, 0].Equals(ArrayStr[n, i])) { return(false); } } return(true); }
private List <int> IndecesOfSameRows() { List <int> indecexRows = new List <int>(); for (int k = 0; k < ArrayStr.GetLength(0); k++) { if (IsRowSame(k)) { indecexRows.Add(k); } } return(indecexRows); }
private List <int> IndecesOfSameColumns() { List <int> indecexColumn = new List <int>(); for (int i = 0; i < ArrayStr.GetLength(1); i++) { if (IsColumnSame(i)) { indecexColumn.Add(i); } } return(indecexColumn); }