/// <summary> /// 未使用の技術IDを取得する /// </summary> /// <param name="startId">検索を開始するID</param> /// <returns>未使用の技術ID</returns> public static int GetNewId(int startId) { int id = startId; while (TechIds.Contains(id)) { id += 10; } return(id); }
/// <summary> /// 技術IDを変更する /// </summary> /// <param name="item">技術項目</param> /// <param name="id">技術ID</param> public static void ModifyTechId(TechItem item, int id) { // 値の変更前に技術項目とIDの対応付けを削除する TechIds.Remove(id); TechIdMap.Remove(id); // 値を更新する item.Id = id; // 技術項目とIDの対応付けを更新する UpdateTechIdMap(); }
/// <summary> /// 技術項目とIDの対応付けを更新する /// </summary> public static void UpdateTechIdMap() { TechIds.Clear(); TechIdMap.Clear(); foreach (TechItem item in Groups.SelectMany(grp => grp.Items.OfType <TechItem>())) { if (!TechIds.Contains(item.Id)) { TechIds.Add(item.Id); TechIdMap.Add(item.Id, item); } } }