设置分组

This commit is contained in:
bob
2025-06-10 14:57:35 +08:00
parent 1d3d4adbf5
commit 9963e4a51e
144 changed files with 8755 additions and 70 deletions

View File

@@ -25,7 +25,7 @@ namespace NBF
list.SortBySortAttribute();
AddRangeToGroup(list);
AddRangeToTab(list);
}
public void LoadAllSettings()
@@ -63,55 +63,55 @@ namespace NBF
}
/// <summary>
/// 获取指定 Group 的所有 OptionBase
/// 获取指定 Tab 的所有 OptionBase
/// </summary>
public List<OptionBase> GetOptionsByGroup(string group)
public List<OptionBase> GetOptionsByTab(string group)
{
if (string.IsNullOrEmpty(group))
{
throw new ArgumentException("Group name cannot be null or empty.");
throw new ArgumentException("Tab name cannot be null or empty.");
}
return _dictionary.TryGetValue(group, out var options) ? options : new List<OptionBase>();
}
/// <summary>
/// 获取所有 Group 名字列表
/// 获取所有 Tab 名字列表
/// </summary>
public IEnumerable<string> GetAllGroups()
public IEnumerable<string> GetAllTabs()
{
return _dictionary.Keys;
}
/// <summary>
/// 将 OptionBase 按 Group 分类存入字典
/// 将 OptionBase 按 Tab 分类存入字典
/// </summary>
private void AddToGroup(OptionBase option)
private void AddToTab(OptionBase option)
{
if (option == null) return;
if (string.IsNullOrEmpty(option.Group)) return;
if (string.IsNullOrEmpty(option.Tab)) return;
// 如果字典中没有该 Group,则新建一个 List 并加入字典
if (!_dictionary.ContainsKey(option.Group))
// 如果字典中没有该 Tab,则新建一个 List 并加入字典
if (!_dictionary.ContainsKey(option.Tab))
{
_dictionary[option.Group] = new List<OptionBase>();
_dictionary[option.Tab] = new List<OptionBase>();
}
// 将 Option 添加到对应的 Group List 中
_dictionary[option.Group].Add(option);
// 将 Option 添加到对应的 Tab List 中
_dictionary[option.Tab].Add(option);
}
/// <summary>
/// 批量添加 OptionBase 到字典
/// </summary>
private void AddRangeToGroup(IEnumerable<OptionBase> options)
private void AddRangeToTab(IEnumerable<OptionBase> options)
{
if (options == null) return;
foreach (var option in options)
{
AddToGroup(option);
AddToTab(option);
}
}