public static List <Int64> ListDiff(List <Int64> list1, List <Int64> list2, ListDiffMode mode = ListDiffMode.EachList) { List <Int64> diff = new List <Int64>(); foreach (Int64 item in list1.Distinct()) { for (int i = 0; i < list1.Where(item1 => item1 == item).Count() - list2.Where(item2 => item2 == item).Count(); i++) { diff.Add(item); } if (mode == ListDiffMode.EachList) { for (int i = 0; i < list2.Where(item2 => item2 == item).Count() - list1.Where(item1 => item1 == item).Count(); i++) { diff.Add(item); } } } return(diff); }
public static List<Int64> ListDiff(List<Int64> list1, List<Int64> list2, ListDiffMode mode = ListDiffMode.EachList) { List<Int64> diff = new List<Int64>(); foreach (Int64 item in list1.Distinct()) { for (int i = 0; i < list1.Where(item1 => item1 == item).Count() - list2.Where(item2 => item2 == item).Count(); i++) { diff.Add(item); } if (mode == ListDiffMode.EachList) { for (int i = 0; i < list2.Where(item2 => item2 == item).Count() - list1.Where(item1 => item1 == item).Count(); i++) { diff.Add(item); } } } return diff; }