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

如何基于Id取余结果初始化字典数组并分配对应记录?

解决方案:按Id%10分配字典数组存储

嘿,这事儿不难搞定!核心就是先确保数组里的每个字典都被正确初始化,再根据Id%10的结果把记录分流到对应位置就行。

步骤1:初始化字典数组

首先得把数组里的每一个字典实例化,不然直接往里加元素会触发NullReferenceException:

// 创建包含10个字典的数组,并逐个初始化
Dictionary<int, string>[] matrix = new Dictionary<int, string>[10];
for (int i = 0; i < matrix.Length; i++)
{
    matrix[i] = new Dictionary<int, string>();
}

步骤2:分流存储记录

假设你已经有了以Id为键的源字典sourceDict,遍历它并计算每个Id对应的索引,把键值对存入对应位置的字典:

// 示例源字典,替换成你实际的数据源
Dictionary<int, string> sourceDict = new Dictionary<int, string>
{
    { 7, "用户7的记录" },
    { 15, "用户15的记录" },
    { 23, "用户23的记录" },
    { 30, "用户30的记录" }
};

// 遍历源字典,分配到对应索引的字典中
foreach (var keyValuePair in sourceDict)
{
    int id = keyValuePair.Key;
    int targetIndex = id % 10; // 计算目标数组索引
    
    // 两种添加方式选一种:
    // 1. 如果要避免重复Id报错,用Add(重复Id会抛异常)
    matrix[targetIndex].Add(id, keyValuePair.Value);
    
    // 2. 如果要覆盖已有Id的记录,直接赋值
    // matrix[targetIndex][id] = keyValuePair.Value;
}

效果示例

比如:

  • Id=15 → 15%10=5 → 存入matrix[5]
  • Id=30 → 30%10=0 → 存入matrix[0]

这样就能完美实现你要的按Id取模分配存储的需求啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:16:03