Click here to Skip to main content
15,892,480 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
So, I have a two un-ordered list - result1 and result2 as listed below.
By using a code below I am able to populate result1 excluding the common items between those two lists.
This code works perfectly for the small size list. However, in real scenario I have two lists with millions of item on it. Using the similar way of eliminating the common values from one list into the other list is taking way too much time.
So, I was wondering if there is an more efficient way to deal with this kind of scenario.

C#
List<int[]> result1 = new List<int[]> { new int[] { 1, 2, 3 }, new int[] { 4, 5, 6 } };
List<int[]> result2 = new List<int[]> { new int[] { 2, 1, 3 }, new int[] { 7, 8, 9 } };

result2.ForEach(t => result1.RemoveAll(z => z.OrderBy(k=>k).SequenceEqual(t.OrderBy(k=>k))));
Posted
Updated 8-Nov-12 12:44pm
v2

1 solution

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900