向一个列表中新增一条数据时,如何生成下一条数据的名称?

思路:如果列表为空,则返回“模板-1”

如果列表中没有匹配正则表达式的数据,则返回“模板-列表行数+1”

如果列表中有匹配正则表达式的数据,则将所有匹配的名称中的数字拿出来放到一个临时列表中,然后取Max+1为下一个序号

        private string generateNextTemplateName()
        {
            string header = "模板";
            if (TemplateItems.Count == 0) return $"{header}-1";
            List<int> nums = new List<int>();
            string pattern = $"^{header}-\\d+$";
            string rep = $"{header}-";
            foreach (var item in TemplateItems)
            {
                if (Regex.IsMatch(item.Company, pattern))
                {
                    nums.Add(int.Parse(item.Company.Replace(rep, "")));
                }
            }
            int num = TemplateItems.Count + 1;
            if (nums.Count <= 0)
            {
                return $"{header}-{num}";
            }
            num = nums.Max() + 1;
            return $"{header}-{num}";
        }

 

posted on 2025-06-19 16:15  lopengye  阅读(9)  评论(0)    收藏  举报

导航