C# - "for" mal anders Veröffentlicht von Anonymus am 3/26/2010 (3 Bewertungen) Eine for-Schleife als int Extension.Die eigentliche Aktion wird als Block mit dem action<T> delegate übergeben. public static void Times(this int count, Action<int> action) { for (int i = 0; i < count; i++) { action(i); } } Abgelegt unter extension. 5 Kommentare zum SnippetChristopher Kk schrieb am 3/26/2010:Willst du wirklich das dass Aufrufende int Objekt auch als Zählervariable genutzt wird seh ich das richtig? Oder willst du folgendes machen?public static void Times(this int value,int count, Action<int> action){ for (int i = 0; i < count; i++) { action(i); }}Sodass du int i = 0;i.Times(10,Console.Writeline);So würde zwar 10 mal 0 ausgeben werden aber auch bei deiner Extension ist es ja ohne Side Effects.Christopher Kk schrieb am 3/26/2010:Sorry ich meinte das bei dem Ersten Code Beispiel natürlich sopublic static void Times(this int value,int count, Action action){ for (int i = 0; i < count; i++) { action(value); }}Christopher Kk schrieb am 3/27/2010:Jo stimmt, ok dann ist alles klar.Christopher Kk schrieb am 3/28/2010:Hmm das ist ganz ehrlich gesagt irgendwie mit der Kirche ums Dorf :D Dafür gibts wirklich bessere Methoden, ohne vorher über den Count zu gehen.Christopher Kk schrieb am 3/29/2010:Richtig nur hat Columbus den Seeweg nicht neu erfunden ;) Logge dich ein, um hier zu kommentieren! Ähnliche Snippets Fenster am Bildschirmrand andocken (auch WPF)String: Vorkommen eines Teilstrings zählenWPF Markup Erweiterung für EnumerationswerteStartsWidth/EndsWith mit mehreren SuchparameternSelektieren eines gekapselten Eintrags aus der ComboBoxProgrammpfad mittels Erweiterung ermittelnInvoke Beispiel mittels Erweiterungs Methoden.DateTime Extensions liefern TimeStampProgrammpfad mittels Erweiterung ermitteln in VBLINQ Erweiterung: SelectMany ohne ParameterColor Extension-MethodsEnum-Extension - Flag in einem Bitfeld gesetzt?Anzahl der Monate zwischen 2 DateTime-Objekten (Extension)Value-änderung bei WPF ProgressBar animierenBildband in ImageList laden