- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
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();
}
Получение имени для нового объекта. Смесь различных техник. Не читаемо.
Nagg 04.08.2010 14:20 # 0
хотя можно ещё оптимизировать (но кратко - так)