public IEnumerator <PackageDependency> GetEnumerator() { var currentKeys = _current.Select(x => x.Name).Distinct(StringComparer.OrdinalIgnoreCase).ToList(); foreach (var val in _current.Concat(_parent.Where(p => currentKeys.Contains(p.Name, StringComparer.OrdinalIgnoreCase) == false))) { yield return(val); } }
public IEnumerator <PackageDependency> GetEnumerator() { var overriddenPackages = _current.Select(x => x.Name).Distinct(StringComparer.OrdinalIgnoreCase).ToList(); foreach (var val in _current.Concat(_parent.Where(p => !overriddenPackages.ContainsNoCase(p.Name) && !_removed.ContainsNoCase(p.Name)))) { yield return(val); } }