比较两个大型(> 50.000个项目)的最快(和最少资源密集型)是什么,因此有两个列表,如下所示:
目前我正在使用List或IReadOnlyCollection并在linq查询中解决此问题:
var list1 = list.Where(i => !list2.Contains(i)).ToList();
var list2 = list2.Where(i => !list.Contains(i)).ToList();
Run Code Online (Sandbox Code Playgroud)
但这并不像我想的那样好.因为我需要处理很多列表,所以想要更快,更少资源吗?
是否有一个内置的linq方法的东西,我可以用来找出两个序列是否包含相同的项目,而不考虑订单?
例如:
{1, 2, 3} == {2, 1, 3}
{1, 2, 3} != {2, 1, 3, 4}
{1, 2, 3} != {1, 2, 4}
Run Code Online (Sandbox Code Playgroud)
你有SequenceEquals,但是我必须首先对两个序列进行排序,不是吗?