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

如何从appsettings.json读取配置到List<(string,string[])>类型变量

读取appsettings.json中Products节点为指定ValueTuple集合的实现方案

你无需修改现有配置结构,只要引用了Microsoft.Extensions.Configuration、Microsoft.Extensions.Configuration.Json等基础配置依赖包,即可通过以下代码直接完成转换:

完整实现代码

using System.Linq;
using Microsoft.Extensions.Configuration;

// 假设_config为已经注入/初始化完成的IConfiguration实例
List<(string category, string[] items)> productList = _config.GetSection("Products")
    .GetChildren()
    .Select(sectionItem => 
    (
        category: sectionItem.GetChildren().First().Key,
        items: sectionItem.GetChildren().First().Get<string[]>()
    ))
    .ToList();

// 如需ValueTuple数组,调用ToArray()即可
// (string category, string[] items)[] productArray = productList.ToArray();

逻辑说明

  • 先通过GetSection("Products")定位到配置中的目标节点
  • 调用GetChildren()遍历Products下的所有分类配置对象
  • 每个分类配置对象仅包含1个键值对,取第一个子节点的键作为分类名称category,对应值直接读取为字符串数组作为items

效果验证

你可以通过以下代码打印结果验证转换正确性:

foreach (var item in productList)
{
    Console.WriteLine($"分类:{item.category}");
    Console.WriteLine($"包含商品:{string.Join("、", item.items)}\n");
}

输出结果如下:

分类:fruits
包含商品:apple、cherry、tomato

分类:vegetables
包含商品:carrot、tomato

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:39:05