using System.Collections.Generic;
using System.Diagnostics;
public static void Main()
var keyNoAfs = Enumerable.Range(1, 13000).ToArray();
var invalidWorkflows = Enumerable.Range(6000, 50000).Select(e => new { Status = "Invalid Status", KEY_NO_AF = e }).ToList();
var sw = Stopwatch.StartNew();
var validWorkflows = keyNoAfs.Except(invalidWorkflows.Select(i => i.KEY_NO_AF)).ToList();
Console.WriteLine(sw.ElapsedMilliseconds);
var invalidDictionary = invalidWorkflows.GroupBy(i => i.KEY_NO_AF).Select(i => i.First()).ToDictionary(i => i.KEY_NO_AF);
var validWorkflows2 = keyNoAfs.Where(k => !invalidDictionary.ContainsKey(k)).ToList();
Console.WriteLine(sw.ElapsedMilliseconds);
var invalidWorkflowList = invalidWorkflows.Select(X => X.KEY_NO_AF).ToList();
var validWorkflows3 = keyNoAfs.Where(Y => !invalidWorkflowList.Contains(Y)).ToList();
Console.WriteLine(sw.ElapsedMilliseconds);