C # Liste <T> vs IEnumerable <T> Performance-Frage

Hallo, nehme an, diese 2 Methoden:

private List<IObjectProvider> GetProviderForType(Type type)
        {
            List<IObjectProvider> returnValue = new List<IObjectProvider>();

            foreach (KeyValuePair<Type, IObjectProvider> provider in _objectProviders)
            {
                if ((provider.Key.IsAssignableFrom(type) ||
                    type.IsAssignableFrom(provider.Key)) &&
                    provider.Value.SupportsType(type))
                {
                    returnValue.Add(provider.Value);
                }
            }
            return returnValue;
        }

private IEnumerable<IObjectProvider> GetProviderForType1(Type type)
        {
            foreach (KeyValuePair<Type, IObjectProvider> provider in _objectProviders)
                if ((provider.Key.IsAssignableFrom(type) ||
                    type.IsAssignableFrom(provider.Key)) &&
                    provider.Value.SupportsType(type))

                    yield return provider.Value;              
        }

Welcher ist schneller? Wenn ich mir die erste Methode anschaue, sehe ich, dass der Speicher für List reserviert ist, was meiner Meinung nach nicht erforderlich ist. DasIEnumerable Methode scheint mir schneller zu sein.

Angenommen, Sie rufen an

int a = GetProviderForType(myType).Count;
int b = GetProviderForType1(myType).Count();

Nun, ein weiteres Problem ist, gibt es einen Leistungsunterschied zwischen diesen beiden oben?

Was denkst du?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage