Wie Sie feststellen, ob ein IEnumerable<T> in C# bereits materialisiert wurde
Es gibt kein HasBeenEnumerated-Flag auf IEnumerable<T>. Hier steht, was TryGetNonEnumeratedCount tatsächlich prüft, warum Enumerable.Range einen ICollection<T>-Test besteht und welche Guard-Klausel ein überflüssiges ToList() vermeidet.