Я пытаюсь найти решение этой проблемы:IEnumerable <IEnumerable <int>> - не дублировать IEnumerable <int> s
Учитывая IEnumerable < < IEnumerable INT >> Мне нужен метод/алгоритм, который возвращает вход, но в случае нескольких IEnmerable < int> с теми же элементами возвращается только одна за совпадение/группа.
ex.
IEnumerable<IEnumerable<int>> seqs = new[]
{
new[]{2,3,4}, // #0
new[]{1,2,4}, // #1 - equals #3
new[]{3,1,4}, // #2
new[]{4,1,2} // #3 - equals #1
};
"Еогеасп след в seqs" .. дает {# 0, # 1, # 2} или {# 0, # 2, # 3}
Sould хожу с ..
.. какой-то умный IEqualityComparer
.. какой-нибудь умный LINQ сочетание я havent выставляется - группаby, sequenceequal ..?
.. некоторые seq-> HashSet материал
.. что нет. Что-нибудь поможет
Я смогу решить это путем программирования good'n'old, но вдохновение всегда ценится.
+1 Приятно, но вы должны предупредить OP abut a) разные частоты дубликатов, вызывающие проблемы b) тот факт, что это мешает упорядочению чисел внутри каждого массива c) факт, что это действительно не возвращает членов исходной последовательности-источника. – Ani
@Ani: Я уже упоминал об обрыве порядка чисел в массиве, но теперь я сделал это более явным. Будет добавлено немного о дубликатах в каждом массиве. –
Упс, извините .. – Ani