using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace CustomOpenAddins.Models { public class BaseItem { public BaseItem(string name) { Name = name; } public string Name { get; } } /// /// 一级开项 /// public class PrimaryItem : BaseItem { public PrimaryItem(string name, SheetTable table) : base(name) { Table = table; SubCategories = new HashSet(); } /// /// 表名 /// public SheetTable Table { get; set; } public SubItem this[int index] { get => SubCategories.ElementAt(index); } public override string ToString() { StringBuilder sb = new StringBuilder($"<主项>{Name};"); if (SubCategories.Count == 0) { return sb.Append("无;").ToString(); } foreach (var item in SubCategories) { sb.AppendLine($"{item}"); } return sb.ToString(); } /// /// 子类项目 /// public HashSet SubCategories { get; private set; } public SubItem AddSub(string subName) { var sub = new SubItem(subName, this); if (SubCategories == null) { SubCategories = new HashSet(); } SubCategories.Add(sub); return sub; } public void AddSubCategories(List subs) { if (SubCategories == null) { SubCategories = new HashSet(); } subs.ForEach(x => { x.Primary = this; SubCategories.Add(x); }); } } }