我有Dictionary<long, Location> PostalCodes
。
当我向此词典添加新元素时,我想查找此词典,如果Location.PostalCode
不在此词典中,我想插入它。否则我想跳过它。因此,需要知道PostalCode是否已经在Collection中。不能用它作为关键。
怎么做?
感谢。
答案 0 :(得分:5)
听起来你需要另一个字典 使用它作为关键字 - 基本上是双向地图。至少,如果你希望它表现良好的话。你可以只查看地图中的每个值,但这将是一个O(n)操作。
(或者,如果您这样做一次,只需为您正在使用的所有位置创建一个HashSet<Location>
。实际上您不需要long
,而是通过它的声音反向查找的目的。)
答案 1 :(得分:4)
您可以尝试:
if(PostalCodes.Values.All(l=>l.PostalCode != location.PostalCode))
{
PostalCodes.Add(key /*what is it*/, location);
}
但是这可能会因大量数据而变慢。