From aeb2a5d91e2cb5d9788715ab00dfcf5cc8335104 Mon Sep 17 00:00:00 2001 From: Chris Cameron Date: Fri, 20 Jul 2018 16:50:13 -0400 Subject: [PATCH] perf: Micro-optimization --- ICD.Common.Utils/RecursionUtils.cs | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/ICD.Common.Utils/RecursionUtils.cs b/ICD.Common.Utils/RecursionUtils.cs index 694c68a..e30d4bf 100644 --- a/ICD.Common.Utils/RecursionUtils.cs +++ b/ICD.Common.Utils/RecursionUtils.cs @@ -84,18 +84,15 @@ namespace ICD.Common.Utils /// private static IEnumerable GetCliqueIterator(IDictionary> map, IcdHashSet visited, T node) { - if (visited.Contains(node)) + if (!visited.Add(node)) yield break; - if (!map.ContainsKey(node)) + IEnumerable adjacent; + if (!map.TryGetValue(node, out adjacent)) yield break; - visited.Add(node); - yield return node; - IEnumerable adjacent = map.GetDefault(node, Enumerable.Empty()); - foreach (T item in adjacent.SelectMany(a => GetClique(map, visited, a))) yield return item; }