好的,有正常字典的答案,但我的字典/要存储的东西的大小不断变化,所以我想用一个列表。这是我存储的内容:
public List<KeyValuePair<GameObject, float>> planesFilled;
我必须不断更新这些值(如果它们产生并且在我的更新函数中不存在于列表中,则添加对。我存储对象与场景中另一个对象之间的距离。
我遇到的错误是无法仅仅为一个键拨打Contains
- 我不一定知道过去的价值。我的关键应该是Gameobject。
到目前为止我所拥有的:
foreach(GameObject plane in anchorManager.planesSpawned)
{
if (ContainsKeyValue(planesFilled.ToDictionary(), plane)) { //dont know value
} else {
planesFilled.Add (new KeyValuePair<GameObject, float>(plane, GetDistanceBetweenObjs(plane.transform, botController.transform)));
}
//planesFilled[plane] = new KeyValuePair<GameObject, float>(plane, GetDistanceBetweenObjs(plane.transform, botController.transform));
//list.Add(new KeyValuePair<double,double>(p.Key,p.Value));
planesFilled.Sort((pair1,pair2) => pair1.Value.CompareTo(pair2.Value));
}
此func已启动,但在我的方案中并不完全正常:
public bool ContainsKeyValue<TKey, TVal>(Dictionary<TKey, TVal> dictionnaire,
TKey expectedKey,
TVal expectedValue) where TVal : IComparable
{
TVal actualValue;
if (!dictionnaire.TryGetValue(expectedKey, out actualValue))
{
return false;
}
return actualValue.CompareTo(expectedValue) == 0;
}
如何更新现有对象的值或将新的对象添加到列表字典情况?
答案 0 :(得分:4)
如何更新现有对象的值或向我的新对象添加新值 列表字典情况?
我无法回答你的&#34;列表字典&#34 ;;而且我不确定是什么让你对使用实际的Dictionary犹豫不决。但如果你这样做,你可以这样做:
yourDictionary["yourKey"] = yourData;
这将是add or upate字典对。