Feedback

C# - Versionsnummern vergleichen

Veröffentlicht von am 03.11.2009
(2 Bewertungen)
Prüft ob eine Versionsnummer kleiner gleich einer anderen ist
GFU-Schulungen  [Anzeige]

Visual Studio Team Foundation Server 2017/2015 (TFS) für Administratoren - Kompakt

Nach dieser Schulung beherrschen Sie die Grundlagen des TFS. Sie erledigen administrative Aufgaben schnell und sicher.

VB.NET Aufbau

Sie verfügen nach der Schulung über fundierte Kenntnisse in der Arbeit mit objektorientierten Modellen in VB.NET und können wiederverwendbare Komponenten eigenständig erzeugen.

        /// <summary>
        /// Prüft ob eine Versionsnummer kleiner gleich einer anderen ist
        /// </summary>
        /// <param name="versionToCompare">Versionsnummer die kleiner/gleich sein soll</param>
        /// <param name="versionToCompareWith">Versionsnummer</param>
        /// <returns></returns>
        public static bool IsVersionNumberLowerOrEqual(string versionToCompare, string versionToCompareWith)
        {
            string[] versionSeperator = new string[] { "." };
            List<string> versionToCompareParts = versionToCompare.Split(versionSeperator, StringSplitOptions.RemoveEmptyEntries).ToList();
            List<string> versionToCompareWithParts = versionToCompareWith.Split(versionSeperator, StringSplitOptions.RemoveEmptyEntries).ToList();
            int maxVersionPartLength = Math.Max(versionToCompareParts.Max(s => s.Length), versionToCompareWithParts.Max(s => s.Length));

            // alle Versionsteile mit 000 auffüllen (damit x.3.x > x.23.x)
            for (int i = 0; i < versionToCompareParts.Count; i++)
                versionToCompareParts[i] = Int32.Parse(versionToCompareParts[i]).ToString().PadRight(maxVersionPartLength, '0');
            for (int i = 0; i < versionToCompareWithParts.Count; i++)
                versionToCompareWithParts[i] = Int32.Parse(versionToCompareWithParts[i]).ToString().PadRight(maxVersionPartLength, '0');

            // versionnummern alla 3.0 nach 3.0.0.0 ändern .. 
            for (int i = versionToCompareParts.Count; i < versionToCompareWithParts.Count; i++)
                versionToCompareParts.Add("0".PadRight(maxVersionPartLength, '0'));
            for (int i = versionToCompareWithParts.Count; i < versionToCompareParts.Count; i++)
                versionToCompareWithParts.Add("0".PadRight(maxVersionPartLength, '0'));


            for (int i = 0; i < versionToCompareParts.Count; i++)
            {
                int valCW = Int32.Parse(versionToCompareWithParts[i]);
                int val = Int32.Parse(versionToCompareParts[i]);
                if (valCW > val) return true;
                else if (valCW < val) return false;
            }
            return true;
        }
Abgelegt unter Version, Versionsnummer.

2 Kommentare zum Snippet

Konstantin Gross schrieb am 04.11.2009:
Du hast es komplizierter gemacht als es ist ;-)

http://msdn.microsoft.com/en-us/library/a5ts8tb6.aspx
Janko schrieb am 04.11.2009:
D'oh! ^^
 

Logge dich ein, um hier zu kommentieren!