Feedback

C# - Kleine Array-Erweiterung

Veröffentlicht von am 20.04.2011
(0 Bewertungen)
Hallöchen, da ich mir gestern das Snippet "Array zur Laufzeit erweitern" von EffEff angesehen habe, und eine kleine Verbesserung vorgeschlagen habe, ist mir doch glatt noch eine elegantere Lösung eingefallen. Warum nicht einfach Resize und Append per Erweitungsmethoden zur Verfügung stellen?
Leider ist es aber so, dass nur Referenz-Typen in einer Erweiterungsmethode geändert werden können. Daher muss beim Aufruf der Resize-Funktion eine Zuweisung zu einem neuen Array erfolgen.
Hier meine zwei Array-Erweiterungen
GFU-Schulungen  [Anzeige]

VB.NET Komplett

Sie stehen vo der Aufgabe, individuelle Anwendungen für Windows zu schreiben. Hier ist VB.NET die optimale Sprache. Sie erlernt sich recht leicht und passt sich komplett in die .NET Umgebung von Microsoft ein. Nach der Schulung entwickeln Sie anwenderfreundliche Programme in VB.NET . Mit den objektorientierten Modellen in VB.NET erzeugen Sie außerdem wiederverwendbare Komponenten.

XML und .NET Überblick

Um auf dem neuesten Wissensstand zu sein, sollten Sie unser aktuelles ASP .NET Komplett Seminar belegen.
Nach dem Seminar kennen Sie die wichtigsten Strömungen in der Software-Technologie

    /// <summary>
    /// 
    /// </summary>
    public static class ArrayExtensions
    {
        /// <summary>
        /// 
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="Source"></param>
        /// <param name="NewSize"></param>
        public static T[] Resize<T>(this T[] Source, int NewSize)
        {
            Array.Resize<T>(ref Source, NewSize);
            return Source;
        }
        /// <summary>
        /// 
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="Source"></param>
        /// <param name="NewElement"></param>
        public static T[] Append<T>(this T[] Source, T NewElement)
        {
            Source = Source.Resize(Source.Length + 1);
            Source[Source.Length - 1] = NewElement;
            return Source;
        }
    }
Abgelegt unter Array, Erweiterung, Append, Resize.

3 Kommentare zum Snippet

EffEff schrieb am 20.04.2011:
Kommt mir bekannt vor.. :)
Legion schrieb am 20.04.2011:
Hehe ;)
Fawk_18 schrieb am 14.02.2012:
Ich finde deine Lösung sehr elegant und muss gestehen dass ich bisher nicht daran gedacht hatte eine Extension dafür zu schreiben. Nichts desto trotz muss ich sagen das mir persönlich Generic Lists besser gefallen als Arrays (mir ist bewusst das diese langsamer sind). Man kann aber mit diese einfach und unkompliziert verändert (d.h. Remove und Add aufrufen) und brauch keine Extensions schreiben.

Lg Fawk_18
 

Logge dich ein, um hier zu kommentieren!