private static string FindNameForMultiLayoutMode(IReadOnlyList<TrackObjectBase> obj) {
var baseName = obj[0].Name;
if (baseName == null) return null;
for (var i = obj.Where(x => x.Name != null).Select(x => x.Name.Length).Min(); i > 2; i--) {
var result = baseName.Substring(0, i);
if (obj.Skip(1).Any(x => x.Name?.Substring(0, i) != result)) continue;
result = result.Trim();
if (result.Length > 2 && result.EndsWith(@"-") || result.EndsWith(@"—")) {
result = result.Substring(0, result.Length - 1).Trim();
}
return result;
}
return null;
}