Есть два файла. Считываю из них оба значения в списки. Хочу взять уникальные значения из обоих списков, однако процесс поиска и сравнения идет очееень долго(строк в обоих списках ~300к). Подскажите как ускорить процесс поиска и сравнения*?
var lst1 = File.ReadAllLines(@ "D:\test\1.csv").ToList();
var lst2 = File.ReadAllLines(@ "D:\\test\2.csv").ToList();
var rez = lst2.Where(x => !MySequenceContains(lst1, x)).
Select(q => string.Join(";", q)).ToList();
}
private bool MySequenceContains(List < string > x, string y) {
bool contains = false;
index++;
label2.Text = index.ToString();
foreach(var a in x) {
// ToDo: tweak the string comparison as needed
if (string.Compare(a.Split(';')[0], y.Split(';')[0], StringComparison.InvariantCultureIgnoreCase) == 0 &&
string.Compare(a.Split(';')[14], y.Split(';')[14], StringComparison.InvariantCultureIgnoreCase) == 0) {
contains = true;
break;
}
}
return contains;
}