我有一种奇怪的情况,代码行执行需要5分钟以上的时间,而我不明白为什么:
var cleansedTransactions = competitorTransactions.Where(i => !endedItemsLocal.Contains(i.ItemID)).ToList();
进一步说明:
competitorTransactions - is a list of transactions which in this case contains 921 record inside it;
endedItemsLocal - is an IEnumerable<string> - which in this case contains 8 records
我在这里要做的是从“ competitorTransactions”列表中删除“ endedItemsLocal”(IEnumerable)中包含的所有项目。
为什么要花5到9分钟才能执行?我可以肯定地说,如果这两个收藏集包含数百万条记录,则需要9分钟,但是只有921和8,这让我发疯了,我不明白为什么要花这么长时间?有人可以帮我吗 ? :/
答案 0 :(得分:2)
您不应使用IEnumerable,因为它是延迟加载的。使用EndItemsLocal的ToArray并使用该集合,它将分配一个集合,从而提高速度。