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]

C# Grundlagen

Die Schulung vermittelt Ihnen die Grundlagen von C# in der Arbeit mit Datentypen sowie bei Klassenbibliotheken. Sie lernen, mit Variablen umzugehen und deren verschiedene Formen zu konvertieren. 

VB.NET 2017/2015/2013 Aufbau

Nach dieser Schulung können Sie mittels objektorientierter Modelle in VB.NET 2017/2015/2013 wiederverwendbare Elemente eigenständig erstellen.

    /// <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!