Creating text without repetition
Here is shorter method with regex

    private static String CreateText(string textIdentifier, IEnumerable&lt;string&gt; texts)
    {
        const int defaultNumber = 1;

        Regex regex = new Regex(@"\(\s*(?&lt;num&gt;\d+)\s*\)");

        var numbers = 
            texts.Select(p =&gt; p.Trim()).Where(p =&gt; p.StartsWith(textIdentifier))
            .Select(str =&gt; { var m = regex.Match(str); return m.Success ? int.Parse(m.Groups["num"].Value) + 1 : defaultNumber; });

        int max = numbers.Any() ? numbers.Max() : 0;

        return max == 0 ? textIdentifier : string.Format("{0}({1})", textIdentifier, max);
    }


+1 to @dreza for tests ;)