Entfernen Sie doppelte innere Listen aus einer Liste der Liste <Objekt> in c #
Ich entschuldige mich für den zweideutigen Titel. Ich konnte es nicht gleichzeitig klar und prägnant halten. Sie können es also jederzeit ändern.
Ich habe eine große Liste, die mehrere andere Listen enthält. Und diese inneren Listen enthalten Column-Objekte.
List<List<Column>> listOfAllColumns;
Nehmen wir an, meine inneren Listen enthalten verschiedene Column-Objekte wie dieses:
list1 = {c1, c1, c2}
list2 = {c1, c2, c1}
list3 = {c2, c3}
list4 = {c1,c1, c2}
Die große Liste enthält die folgenden Listen: listOfAllColumns = {list1, list2, list3, list4}
Jetzt möchte ich eine Methode, die entferntdoppelte Listen aus der Liste listOfAllColumns. Zum Beispiel wird es in die Liste oben schauen und list4 entfernen.
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)
Hier ist mein Code:
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;
}
Übrigens ist die Reihenfolge wichtig, also unterscheidet sich zum Beispiel {c1, c2, c1} von {c2, c1, c1}.