I would think this will do it:
var matches = profiles.Where(p => p.Name.StartsWith(newProf.Name));
string candidate = newProf.Name;
if (matchesprofiles.Any(p => p.Name == candidatenewProf.Name))
{
string template = newProf.Name + " ({0})";
int counter = 1;
string candidate = String.Format(template, counter);
while (matchesprofiles.Any(p => p.Name == candidate))
{
counter++;
candidate = String.Format(template, counter);
}
newProf.Name = candidate;
}