我以前C++/STL程序員嘗試使用C#/。NET技術編寫一個快速行進算法...查找,或插入只有一個在C#字典查找
我在尋找一個相當於STL方法「map :: insert」,如果不存在則在給定鍵處插入一個值,否則返回現有鍵值對的迭代器。
我發現的唯一辦法做到這一點有兩個查詢:一個內部TryGetValue和另一位在添加方法:
List<Point> list;
if (!_dictionary.TryGetValue (pcost, out list))
{
list = new List<Point>();
dictionary.Add (pcost, list);
}
list.Add (new Point { X = n.x, Y = n.y });
有什麼解釋了爲什麼這個使用.NET容器是不可能的?或者我錯過了一些觀點?
謝謝。
你確定它甚至在生產代碼中執行兩次查找嗎? – CodingBarfield
雙重查詢真的很重要嗎?時間的差異是微不足道的。 –
@Chris:什麼?你沒有任何基準來支持這一點,更不用說與OP的使用模式相關的基準;) - 我可以告訴你代碼在哪裏重要(哦,等等,我不能出於法律原因...) – sehe