Вы не используете словарь эффективно.Вы хотите проверить, не содержит ли словарь ключ.Измените свой код, чтобы использовать метод .ContainsKey
.Кроме того, вам, вероятно, следует заранее вызвать Path.GetFileName (x) из этого цикла и измерить, каково его влияние.
var finalFilesHashSet = new HashSet<string>(
FinalFilesList.Where(x => !dictLocalFile.ContainsKey(Path.GetFileName(x))));
С помощью написанного вами словарного кода в основном устраняются все преимущества производительности, которые словарь дает вам: O (1)) получить операции.Вместо этого вы конвертируете его в перечисляемый и перебираете содержимое словаря.Встроенный метод - это, по сути, поиск по хеш-таблице