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

C#如何获取Dictionary<string, string[]>中值数组的元素个数

问题核心原因

你定义的Dictionary<string, string[]>中,csvFileNameSheetName.Values是字典所有值(也就是所有string[]实例)的集合,它的Count属性返回的是字典内键值对的总数量,和单个数组的长度无关。数组的长度是数组类型自带的Length属性,需要拿到具体的数组实例后才能读取。

不同场景的实现代码
  • 获取指定键对应数组的长度:
// 将"你的目标键名"替换为实际要查询的字典键
int targetArrayLength = csvFileNameSheetName["你的目标键名"].Length;

注意:如果不确定键是否存在,建议先用csvFileNameSheetName.TryGetValue("你的目标键名", out string[] arr)判断,避免抛出键不存在的异常。

  • 遍历字典,逐个获取每个键对应数组的长度并操作数组元素:
foreach (var keyValuePair in csvFileNameSheetName)
{
    string csvFileName = keyValuePair.Key;
    string[] sheetNames = keyValuePair.Value;
    // 获取当前键对应的数组长度
    int currentArrayLength = sheetNames.Length;
    
    // 替换你之前错误的for循环,遍历当前数组
    for (int idx = 0; idx < currentArrayLength; idx++)
    {
        string currentSheetName = sheetNames[idx];
        // 编写你的业务逻辑
    }
}
  • 统计字典内所有值数组的元素总数量:
    需要先引入LINQ命名空间:using System.Linq;
int totalItemCount = csvFileNameSheetName.Values.Sum(array => array.Length);
原写法错误说明

你之前使用的csvFileNameSheetName.Values.Count,统计的是字典中存了多少个数组(也就是多少个键值对),不是数组内部的元素个数,自然无法达到预期效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 01:15:39