Итак, я работаю над проблемой и приступаю к стене, и я не могу найти способ обойти ее. Я получаю так много информации от ОС, что я думал, что попрошу здесь, и посмотреть, есть ли способ сделать это лучше, чем то, что я нахожу. В принципе, у меня есть класс, в котором есть куча ценностей, но для наших целей имеет значение только одно.Групповые пары подключенных значений в списках
public class GroupPair
{
public string object1 { get; set; }
public string object2 { get; set; }
public List<string> BothObjects
{
get
{
List<string> s= new List<string>();
s.Add(object1);
s.Add(object2);
return s;
}
}
У меня есть список, и мне нужно иметь возможность сортировать их по группам. Там, где становится сложно, оба значения не уникальны, а размер группы и количество групп являются переменными. Мне в основном нужен способ сказать: «Дайте мне каждую группу, которая может быть сделана из этого списка, где каждая группа содержит все пары, которые включают в себя любого отдельного члена группы». Позвольте мне привести пример, и ... вот некоторые пары:
a d
f h
d t
n w
h a
n o
q d
w f
o y
После группировки, это то, что я хочу:
Group 1
a d
h a
q d
f h
w f
d t
Group 2
n x
n o
o y
Растопить ваш мозг еще? Любые идеи о том, как это можно сделать, или даже если есть название такого понятия, которое я могу исследовать сам?
«Любые идеи о том, как это можно было бы сделать», - нет, не совсем. Не зная логики группировки и сортировки. – Oded
Предложение: узнать Linq. Это облегчит вашу жизнь и может стать ключом к решению вашей проблемы. Также, что сказал @Oded. – Renan
Может быть, я был неясен? Логика - это только люди. Группа состоит из всех пар, которые включают всех лиц в группе. Например, в первой группе первая пара является а и d, поэтому индивиды являются а и d. Единственная другая пара, которая включает a, - это a и h, так что пара находится. Теперь членами группы являются a, d и h, поэтому группа должна содержать все пары, которые включают любое из них. И так далее. –