private bool _FirstNoOrderProcess(params object[] list) { if (_cache.Find(_FindResponsibility, list)) { return(true); } foreach (var responsibility in _chain) { if (!responsibility.CanProcess(list)) { continue; } _cache.Add(responsibility); responsibility.Process(list); return(true); } return(false); }