You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向SortedList中嵌套的List泛型集合添加对象

操作实现方法

核心逻辑

添加操作需要先校验目标分类Key是否存在,不存在则先初始化对应Key的List实例,再执行元素添加,避免空引用或键不存在异常。

完整代码示例

// 先校验顶层SortedList是否已实例化
categories ??= new SortedList<string, List<ToolCommandDiscoveryHelper.DiscoveredTool>>();

// 定义目标分类Key和待添加的对象
string categoryKey = "自定义分类名";
ToolCommandDiscoveryHelper.DiscoveredTool toolToAdd = new ToolCommandDiscoveryHelper.DiscoveredTool
{
    // 赋值对象属性,替换为实际业务逻辑
};

// 校验Key是否存在
if (!categories.ContainsKey(categoryKey))
{
    categories[categoryKey] = new List<ToolCommandDiscoveryHelper.DiscoveredTool>();
}

// 完成元素添加
categories[categoryKey].Add(toolToAdd);

简化写法(C# 6.0+ 支持)

用TryGetValue减少字典查询次数,性能更优:

categories ??= new SortedList<string, List<ToolCommandDiscoveryHelper.DiscoveredTool>>();
string categoryKey = "自定义分类名";
ToolCommandDiscoveryHelper.DiscoveredTool toolToAdd = new();

if (!categories.TryGetValue(categoryKey, out var toolList))
{
    toolList = new List<ToolCommandDiscoveryHelper.DiscoveredTool>();
    categories[categoryKey] = toolList;
}
toolList.Add(toolToAdd);

注意事项

  • 需确保ToolCommandDiscoveryHelper.DiscoveredTool的访问权限符合当前上下文要求
  • SortedList的Key默认区分大小写,如有忽略大小写需求可在实例化时传入StringComparer.OrdinalIgnoreCase参数:
    categories = new SortedList<string, List<ToolCommandDiscoveryHelper.DiscoveredTool>>(StringComparer.OrdinalIgnoreCase);
    

内容的提问来源于stack exchange,提问作者Timmie Nilsson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 09:45:00