C#:Dictionary类型数组

在C#中,如果你想将字典(Dictionary)作为数组的一个元素。

方法1:直接声明字典数组

例如:

Dictionary<int, string>\[\] dictArray = new Dictionary<int, string>3;

// 初始化字典数组的每个元素

for (int i = 0; i < dictArray.Length; i++)

{

dictArrayi = new Dictionary<int, string>();

}

// 示例:向第一个字典添加元素

dictArray0.Add(1, "One");

dictArray0.Add(2, "Two");

方法2:使用List<Dictionary<TKey, TValue>>

如果你不确定数组的大小,或者想要更灵活地管理字典集合,可以使用List<Dictionary<TKey, TValue>>:

List<Dictionary<int, string>> dictList = new List<Dictionary<int, string>>();

// 添加一个新字典到列表中

dictList.Add(new Dictionary<int, string>());

dictList.Add(new Dictionary<int, string>());

// 示例:向第一个字典添加元素

dictList0.Add(1, "One");

dictList0.Add(2, "Two");

方法3:在数组中使用匿名类型或自定义类型封装字典

如果需要在数组中存储不同类型的对象,包括字典,你可以使用匿名类型或自定义类来封装字典:

// 使用匿名类型

var array = new {

Dict1 = new Dictionary<int, string> { { 1, "One" }, { 2, "Two" } },

Dict2 = new Dictionary<int, string> { { 3, "Three" }, { 4, "Four" } }

};

// 或者使用自定义类型

public class DictWrapper

{

public Dictionary<int, string> Dict { get; set; }

}

DictWrapper\[\] dictArray = new DictWrapper2;

dictArray0 = new DictWrapper { Dict = new Dictionary<int, string> { { 1, "One" }, { 2, "Two" } } };

dictArray1 = new DictWrapper { Dict = new Dictionary<int, string> { { 3, "Three" }, { 4, "Four" } } };

方法4:使用元组(适用于简单的键值对)

对于简单的键值对集合,你可以使用元组(Tuple)或值元组(ValueTuple):

(Dictionary<int, string>, Dictionary<int, string>)\[\] dictTuples = new (Dictionary<int, string>, Dictionary<int, string>)2;

dictTuples0 = (new Dictionary<int, string> { { 1, "One" }, { 2, "Two" } }, null); // 示例:第一个位置存储一个字典,第二个为null或另一个字典等。

dictTuples1 = (new Dictionary<int, string> { { 3, "Three" }, { 4, "Four" } }, null); // 同上。

相关推荐
FfHUCisI几秒前
Golang 切片扩容策略
开发语言·数据库·golang
en.en..2 分钟前
Ubuntu嵌入式开发 export环境变量
java·开发语言·数据库
gf13211113 分钟前
【python_回复邮件】
android·java·python
攻城有术8 分钟前
专项攻克——重写 Redis 依赖包方法的 6 种实现方式
java·数据库·redis·bootstrap
ynchyong14 分钟前
JavaScript Promise 实战:.then() 与 .catch() 的区别及回调函数封装指南
开发语言·javascript·ecmascript·promise·then
跨境数据猎手16 分钟前
京东开放平台商品详情接口(jd.item_get):签名、缓存与批量采集
java·spring·缓存
名字还没想好☜17 分钟前
Go 1.21 context.WithoutCancel 实战:父 context 取消了,收尾任务还要继续跑
开发语言·后端·golang·go
czhc114007566329 分钟前
2026-09-03 博客:配置与密码 · 合并代码 · 超时排查
c#
wdfk_prog41 分钟前
canopennode-rtt推荐,不只可以做从站,也可以承担主站角色
c语言·开发语言·数据库·学习·算法·深度优先
几层山下1 小时前
WPS的word文档转pdf java实现不乱格式生成-已解决
java·pdf·word·wps