Remova listas internas duplicadas de uma lista de lista <object> em c #
Peço desculpas pelo título ambíguo. Não consegui mantê-lo claro e conciso ao mesmo tempo. Portanto, fique à vontade para mudar isso.
Eu tenho uma grande lista que contém várias outras listas. E essas listas internas contêm objetos de coluna.
List<List<Column>> listOfAllColumns;
Digamos que minhas listas internas contenham diferentes objetos de coluna como este:
list1 = {c1, c1, c2}
list2 = {c1, c2, c1}
list3 = {c2, c3}
list4 = {c1,c1, c2}
E a grande lista contém estas listas: listOfAllColumns = {list1, list2, list3, list4}
Agora eu quero um método que removelistas duplicadas na lista listOfAllColumns. Por exemplo, ele examinará a lista acima e removerá a lista4.
list1: c1,c1,c2
list2: c1,c2,c1
list3: c2,c3
list4: c1,c1,c2 (it is equal to list1 so it is a duplicate)
Aqui está o meu código:
public class ColumnList
{
public void RemoveDuplicateColumnTypes()
{
Column c1 = new Column() { SectionName = "C50", StirrupType = "Tie" };
Column c2 = new Column() { SectionName = "C50", StirrupType = "Spiral" };
Column c3 = new Column() { SectionName = "C40", StirrupType = "Tie" };
List<Column> list1 = new List<Column>() { c1, c1, c2 };
List<Column> list2 = new List<Column>() { c1, c2, c1 };
List<Column> list3 = new List<Column>() { c2, c3 };
List<Column> list4 = new List<Column>() { c1, c1, c2 };
List<List<Column>> listOfAllColumns = new List<List<Column>>() { list1, list2, list3, list4 };
var result = listOfAllColumns.Distinct();
}
}
class Column
{
public string SectionName;
public string StirrupType;
public int StirrupSize;
public double StirrupSpacing;
}
A propósito, a ordem é importante, portanto, por exemplo {c1, c2, c1} é diferente de {c2, c1, c1}.