static int CompareParts(string part1, string part2) { string[] parts = { "dev", "alpha", "a", "beta", "b", "RC", " ", "#", "pl", "p" }; int[] order = { -1, 0, 1, 1, 2, 2, 3, 4, 5, 6, 6 }; int i = Array.IndexOf(parts, part1); int j = Array.IndexOf(parts, part2); return Math.Sign(order[i + 1] - order[j + 1]); }