我在檢查一個列表是否有一個元素的源和目標已經在列表中。如果沒有,我將這個元素添加到列表中。我這樣做:更快版本的LINQ .Any()和.Count()
if (!objectToSerialize.elements
.Any(x => x.data.source == edgetoAdd.data.source &&
x.data.target == edgetoAdd.data.target))
objectToSerialize.elements.Add(edgetoAdd);
這個工程,但非常緩慢。有沒有辦法讓這部分更快? Any()
或Count
有更快的實施嗎?提前致謝。
你能之所以不會有循環在所有項目?例如,你可以將它們粘貼在一個字典中,其中'source'和'target'組成了快速查找的關鍵字,但是否可行取決於你的數據結構是什麼樣子以及你想要做什麼。僅僅爲這個代碼片段提供優化的相關提示幾乎是不可能的。請閱讀[問]並正確解釋你想要做什麼,包括展示[mcve]。 – CodeCaster
使用不同的數據結構。也許是一個關於源和目標散列的字典。 – Steve
@Steve該值的標識基於源和目標*,而不僅僅是目標,因此通過將源設置爲關鍵字來僅使用源作爲標識將是錯誤的。 – Servy