Удалить дубликаты внутренних списков из списка списка <объект> в C #

Я прошу прощения за неоднозначное название. Я не мог держать это ясным и кратким одновременно. Так что смело меняй это.

У меня есть большой список, который содержит несколько других списков. И эти внутренние списки содержат объекты столбцов.

List<List<Column>> listOfAllColumns;

Допустим, мои внутренние списки содержат разные объекты Column, например:

list1 = {c1, c1, c2}
list2 = {c1, c2, c1}
list3 = {c2, c3}
list4 = {c1,c1, c2}

И большой список содержит эти списки: listOfAllColumns = {list1, list2, list3, list4}

Теперь я хочу метод, который удаляетдубликаты списков из списка listOfAllColumns. Например, он посмотрит в список выше и удалит list4.

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)

Вот мой код:

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;
}

Кстати, порядок важен, поэтому, например, {c1, c2, c1} отличается от {c2, c1, c1}.

Ответы на вопрос(2)

Ваш ответ на вопрос