如何从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
相关产品推荐
相关产品推荐

