我在检查一个列表是否有一个元素的源和目标已经在列表中。如果没有,我将这个元素添加到列表中。我这样做:更快版本的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