向一个列表中新增一条数据时,如何生成下一条数据的名称?
思路:如果列表为空,则返回“模板-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}"; }
浙公网安备 33010602011771号