Heim >Backend-Entwicklung >C++ >Warum verfügt C# nicht über eine ForEach-Erweiterungsmethode für IEnumerable?
Der seltsame Fall der fehlenden IEnumerable ForEach-Erweiterung
Eine aktuelle Diskussion über das Fehlen einer Zip
-Funktion in C# löste eine ähnliche Frage aus: Warum stellt C# keine ForEach
-Erweiterungsmethode für die weit verbreitete IEnumerable
-Schnittstelle bereit? Interessanterweise enthält nur List<T>
diese Funktionalität.
Das Geheimnis lüften
Ist diese Auslassung eine Leistungsoptimierung? Oder gibt es einen tieferen Grund? Mehrere Theorien versuchen, diese auffällige Lücke zu erklären.
Der integrierte foreach
Vorteil
Eine Perspektive legt nahe, dass die in C# integrierte foreach
-Anweisung die meisten Iterationsanforderungen angemessen erfüllt. Seine prägnante und lesbare Syntax wird oft bevorzugt:
<code class="language-csharp">foreach (Item item in list) { item.DoSomething(); }</code>
Dies steht im Gegensatz zur ausführlicheren Syntax einer Erweiterungsmethode:
<code class="language-csharp">list.ForEach(item => item.DoSomething());</code>
Argumente für eine ForEach
Verlängerung
Andere argumentieren jedoch für die praktischen Vorteile einer ForEach()
Erweiterungsmethode in bestimmten Situationen. Zu diesen Vorteilen gehören:
foreach
-Anweisung.ForEach()
Aufrufen potenziell anfällig für Überbeanspruchung ist, ist sie ein überzeugender Vorteil.Ein Perspektivwechsel
Anfangs zweifelhaft, erkennen einige nun den Wert einer ForEach()
Erweiterungsmethode in bestimmten Szenarien. Diese Neubewertung legt nahe, dass Microsoft möglicherweise in Erwägung zieht, in zukünftigen Framework-Releases eine standardisierte ForEach
-Methode hinzuzufügen.
Das Fehlen dieser Erweiterungsmethode für IEnumerable
bleibt ein Diskussionsthema. Angesichts der potenziellen Vorteile erwartet die Entwicklergemeinschaft weitere Entwicklungen und hofft, dass diese Lücke in der C#-Erweiterungsbibliothek geschlossen wird.
Das obige ist der detaillierte Inhalt vonWarum verfügt C# nicht über eine ForEach-Erweiterungsmethode für IEnumerable?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!