Дан список наборов ...
var sets = new List<HashSet<int>>(numTags);
Как я могу удалить все наборы, которые являются правильным подмножеством другого?
Это лучший способ сделать это?
for (int i = 0; i < sets.Count; ++i)
{
for (int j = 0; j < sets.Count; ++j)
{
if (i != j && sets[i].IsProperSubsetOf(sets[j]))
{
sets.RemoveAt(i--);
}
}
}
Я уменьшаю i
, потому что я полагаю, что все удаляется один раз после удаления, поэтому мне нужно снова проверить этот слот.