質問するログイン新規登録

回答編集履歴

1

foreach版追記

2018/07/17 06:07

投稿

sh_akira
sh_akira

スコア380

answer CHANGED
@@ -41,4 +41,20 @@
41
41
  一方向だけ見てたら
42
42
  A {1,2} B {2,3} C {3,4} はよくても
43
43
  A {1,2} B {3,4} C {2,3} がダメで
44
- 結局両方向になりました。
44
+ 結局両方向になりました。
45
+
46
+ 追記:
47
+ インデクサはやっぱり嫌なので、ごり押しで短くしました
48
+ ``` csharp
49
+ var allList = new List<HashSet<int>> { A, B, C, D, E, F, };
50
+
51
+ allList.ForEach(outer => allList.ForEach(inner => {
52
+ if (outer != inner && outer.Where(d => inner.Contains(d)).Any()) {
53
+ inner.ToList().ForEach(d => outer.Add(d));
54
+ inner.Clear();
55
+ }
56
+ }));
57
+
58
+ //result
59
+ var result = allList.Where(d => d.Any());
60
+ ```