[英]How can I speed up DataColumn check?
string specifiedSymbol = "MySymbol";
Systems.Data.DataTable table = CreateInitialTable();
if (!table.Columns.Contains(specifiedSymbol))
table.Columns.Add(specifiedSymbol, Type.GetType("System.Double"));
我剛剛描述了上述陳述,看來中頻大約需要10毫秒。 這對我的應用來說是很長的時間。 我還能如何更有效地檢查數據表中是否存在列?
您正在使用什么類或導入尚不清楚,因此我將提供一個通用答案。
在具有O(n)復雜度(或更糟)的集合上調用Contains()
時,可以通過執行以下任一操作來提高性能:
HashSet
在其中鏡像對O(n)集合所做的任何更改,然后使用HashSet
的Contains()
方法測試是否存在。 HashSet
並在每次需要調用Contains()
時用集合的內容填充它來提高性能, 前提是您需要在一個容器中多次調用它。行,即沒有間歇的更改操作,並且使用集合的實現所花費的時間要比完全根據其內容創建一個新的HashSet
花費的時間更長。 由於性能原因,這比前者更不可取,但對代碼可管理性則更可取。 最好的情況是能夠編寫一個新類,該類繼承自集合的類,並將所有邏輯放入其中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.