gpt4 book ai didi

c# - 多个列表或字典?

转载 作者:太空宇宙 更新时间:2023-11-03 14:42:29 25 4
gpt4 key购买 nike

我在 Unity3D 中使用 C# 工作。我需要一个结构来保存一些值。我需要通过字符串索引访问该结构,并且值是 GameObjects(但这个问题适用于任何可能的值,它是相同的)。我不知道我将在每个索引上存储多少个对象,所以它不能是一个数组。我想在一个

Dictionary<string,List<GameObject>>

但是可以在我添加索引的同时将项目添加到该列表吗?因为如果我需要在将列表添加到字典之前填充列表,我可以拥有 X 个列表而忘记字典。

实现此目标的最佳结构是什么?

最佳答案

你可以实现你自己的多字典

public class MultiDictionary<TKey, TValue> : Dictionary<TKey, List<TValue>>
{
public void Add(TKey key, TValue value)
{
if (TryGetValue(key, out List<TValue> valueList)) {
valueList.Add(value);
} else {
Add(key, new List<TValue> { value });
}
}
}

请注意,我添加了一个 Add无需处理列表即可自动添加单个值的方法。该类继承了原来的Add允许您添加整个列表的方法。

或者,您可以创建一个 Dictionary<TKey, HashSet<TValue>>如果您需要添加唯一值并且顺序无关紧要。

关于c# - 多个列表或字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56090998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com