Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
const string newObjectName = "Новый объект";
// формирует имя нового объекта
string BuildNewObjectName()
{
var namesTaken = from node in objectAdapters where node.Name.Contains(newObjectName) select node.Name;
int n = 0;
// ищем максимальное число в конце имени
if (namesTaken.Any())
n = namesTaken.Aggregate(n, (acc, name) =>
{
int current;
return (int.TryParse(name.Split().Last(), out current) && current > acc) ? current : acc;
});
// возвращаем следующее
return newObjectName + " " + (n+1).ToString();
}
Получение имени для нового объекта. Смесь различных техник. Не читаемо.
хотя можно ещё оптимизировать (но кратко - так)