public InstanceSources MergeWithPreferred(InstanceSources instanceSources) { var others = _others.Union(instanceSources._others); if (instanceSources.Best is not null) { others = others.Remove(instanceSources.Best); } if (Best is not null && !Best.Equals(instanceSources.Best)) { others = others.Add(Best); } return(new InstanceSources(instanceSources.Best, others)); }
public InstanceSources Merge(InstanceSources instanceSources) { if (Best?.Equals(instanceSources.Best) ?? false) { return(new InstanceSources(Best, _others.Union(instanceSources._others))); } var others = _others.Union(instanceSources._others); if (Best is not null) { others = others.Add(Best); } if (instanceSources.Best is not null) { others = others.Add(instanceSources.Best); } return(new InstanceSources(null, others)); }