回答編集履歴
1
foreach版追記
test
CHANGED
@@ -85,3 +85,35 @@
|
|
85
85
|
A {1,2} B {3,4} C {2,3} がダメで
|
86
86
|
|
87
87
|
結局両方向になりました。
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
追記:
|
92
|
+
|
93
|
+
インデクサはやっぱり嫌なので、ごり押しで短くしました
|
94
|
+
|
95
|
+
``` csharp
|
96
|
+
|
97
|
+
var allList = new List<HashSet<int>> { A, B, C, D, E, F, };
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
allList.ForEach(outer => allList.ForEach(inner => {
|
102
|
+
|
103
|
+
if (outer != inner && outer.Where(d => inner.Contains(d)).Any()) {
|
104
|
+
|
105
|
+
inner.ToList().ForEach(d => outer.Add(d));
|
106
|
+
|
107
|
+
inner.Clear();
|
108
|
+
|
109
|
+
}
|
110
|
+
|
111
|
+
}));
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
//result
|
116
|
+
|
117
|
+
var result = allList.Where(d => d.Any());
|
118
|
+
|
119
|
+
```
|