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]

ASP.NET Core Server - Programmierung

In nur 3 Tagen lernen Sie, wie man mit ASP.NET Core und den Technologien MVC, Entity Framework, WebAPI und Razor professionelle Web-Anwendungs-Architekturen aufbaut. Diese Schulung ist der perfekte Einstieg, um datengetriebene und präsentations-orientierte Applikationen auf Basis der ASP.NET Core Plattform zu erstellen.

VB.NET 2017/2015/2013 Einführung

Das Seminar befähigt Sie zur eigenständigen Entwicklung von anwenderorientierten Programmen in VB.NET, worin auch der Einsatz von Datenbanken enthalten ist.

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