我正在寻找适合以下情况的集合:
每个露营都是独一无二的 每个孩子都是独一无二的,但不一定要在露营中。在代码中,我将其构建为:
Dictionary<Camping, List<Child>> list = new Dictionary<Camping, List<Child>>()
然后对于每个在露营的孩子
private void AddChildToCamping(Camping camping, Child child)
{
if (!list .ContainsKey(camping))
{
list .Add(camping, new List<string>());
}
list[camping].Add(child);
}
但是稍后我们需要快速查看孩子是否在露营中,如果是,孩子在露营中。使用上面的代码,这意味着循环遍历露营的完整列表和孩子列表。
bool foundInCamping = false;
foreach (Camping key in list.Keys)
{
List<Child> children;
bool ok = list.TryGetValue(key, out children);
if (ok)
{
if (children.Contains(targetChild))
{
foundInCamping = true;
break;
}
}
}
有没有更好的方法来实现这一目标?