private static DirectoryWatcher CreateOrReuseWatcher([NotNull] string directory) { var watcher = Watchers.FirstOrDefault(x => x.TargetDirectory.Equals(directory, StringComparison.OrdinalIgnoreCase)); if (watcher != null) return watcher; watcher = new DirectoryWatcher(directory); Watchers.Add(watcher); return watcher; }