Я помещаю 2 очень больших набора данных в память, выполняю объединение, чтобы отфильтровать подмножество из первой коллекции, а затем пытаюсь уничтожить вторую коллекцию, поскольку она использует приблизительно 600 МБ оперативной памяти моей системы. Проблема в том, что код ниже не работает. После запуска приведенного ниже кода цикл foreach запускается и занимает около 15 минут. За это время объем памяти НЕ сокращается с 600 МБ +. Я делаю что-то не так?
List<APPLES> tmpApples = dataContext.Apples.ToList(); // 100MB
List<ORANGES> tmpOranges = dataContext.Oranges.ToList(); // 600MB
List<APPLES> filteredApples = tmpApples
.Join(tmpOranges, apples => apples.Id, oranges => oranges.Id, (apples, oranges) => apples).ToList();
tmpOranges.Clear();
tmpOranges = null;
GC.Collect();
Обратите внимание, я позже повторно использую tmpApples, поэтому я не очищаю его сейчас ..