AcManager.Tools.Objects.TrackObject.FindNameForMultiLayoutMode C# (CSharp) Метод

FindNameForMultiLayoutMode() приватный статический Метод

private static FindNameForMultiLayoutMode ( IReadOnlyList obj ) : string
obj IReadOnlyList
Результат string
        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;
        }