У меня есть список объектов. Каждый объект имеет свойство Conflicts, которое представляет собой HashSet для int.Удаление подмножеств и дубликатов из списка?
Я хочу, чтобы удалить все наборы, которые являются собственными подмножествами, а также удалите все дубликаты, где дубликат, если hashsets содержат одни и те же числа:
private static List<ConflictGroup> RemoveSubsets(List<ConflictGroup> groups)
{
List<ConflictGroup> results = new List<ConflictGroup>();
foreach (var group in groups)
{
results.RemoveAll(r => r.Conflicts.SetEquals(group.Conflicts));
results.RemoveAll(r => r.Conflicts.IsProperSubsetOf(group.Conflicts));
results.Add(group);
}
return results;
}
Это почти работает.
Если у меня есть:
1
1,2
1,2,3
Это только держит 1,2,3.
Но если у меня есть:
1,
1,2,3
1,2
Он терпит неудачу и не просто возвращает 1,2,3 ...
Я не уверен, что я должен изменить для того, чтобы работать.