Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1550 | Anzahl registrierter User: 1841 | Besucher online: 4
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

Versionsnummern vergleichen


Autor: Janko
Sprache: C#
Bewertung:
noch nicht bewertet
Anzahl der Aufrufe: 2587
  
Kick it on dotnet-kicks.de  

Beschreibung:

Prüft ob eine Versionsnummer kleiner gleich einer anderen ist

Abgelegt unter: Version, Versionsnummer.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
        /// <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;
        }
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)

Konstantin Gross schrieb am:  04.11.2009 08:54:48

Du hast es komplizierter gemacht als es ist ;-)

http://msdn.microsoft.com/en-us/library/a5ts8tb6.aspx
Janko schrieb am:  04.11.2009 10:54:09

D'oh! ^^


schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.