Hallo,
es ist doch ein schönes Gefühl, wenn man selber zu einer Lösung kommt, so wie deine
getControls<T>-Methode (auch wenn du einen Parameter doppelt hast: entweder generisch mittels
T oder den
Type-Parameter übergeben).
Aber da du nicht der einzige bist, der so etwas öfter mal benötigt, gibt es diese Methode schon im .NET-Framework:
Enumerable.OfType<TResult>-Methode (d.h. als Erweiterungsmethode)
Die Anwendung wäre dann z.B.
C#-Quelltext
1:
| foreach (RichTextBox rtb in Controls.OfType<RichTextBox>()) |
oder aber
C#-Quelltext
1:
| List<RichTextBox> rtbList = new List(Controls.OfType<RichTextBox>()); |
PS:
using System.Linq nicht vergessen...
PPS: Nicht um hier zu protzen, sondern nur, um dir zu zeigen, wie einfach manchmal Linq sein kann, auch für
IsModified eine kurze Linq-Alternative:
C#-Quelltext
1:
| rtbList.Any(rtb => rtb.Modified); |
Die Erklärung zu dem Ausdruck innerhalb der Klammer findet sich unter
Lambda-Ausdrücke.
Spiel am besten mal mit einigen der
Enumerable-Methoden herum...