private static AmbiguousLifestylesDiagnosticResult CreateDiagnosticResult( InstanceProducer diagnosedProducer, InstanceProducer[] conflictingProducers) { Type serviceType = diagnosedProducer.ServiceType; Type implementationType = diagnosedProducer.Registration.ImplementationType; var lifestyles = from producer in conflictingProducers.Concat(new[] { diagnosedProducer }) let lifestyle = producer.Registration.Lifestyle group lifestyle by lifestyle.GetType() into g select g.First(); string description = BuildDescription(diagnosedProducer, conflictingProducers); return new AmbiguousLifestylesDiagnosticResult(serviceType, description, lifestyles.ToArray(), implementationType, diagnosedProducer, conflictingProducers); }