Удаление элемента из списка на основе свойства - PullRequest
0 голосов
/ 22 апреля 2019

У меня странная ситуация, когда выполнение строки кода занимает более 5 минут, и я не могу понять, почему:

var cleansedTransactions = competitorTransactions.Where(i => !endedItemsLocal.Contains(i.ItemID)).ToList();

Чтобы объяснить дальше:

competitorTransactions - is a list of transactions which in this case contains 921 record inside it;

endedItemsLocal - is an IEnumerable<string> - which in this case contains 8 records

То, что я пытаюсь сделать здесь, - это удалить все элементы, содержащиеся в "terminItemsLocal" (IEnumerable), из списка "CompetitorTransactions".

Почему выполнение занимает 5-9 минут? Я бы сказал, что это займет 9 минут, если эти две коллекции содержат миллионы записей, но только 921 и 8, это сводит меня с ума, и я не могу понять, почему это занимает так много времени? Кто-нибудь может мне помочь ? : /

1 Ответ

2 голосов
/ 22 апреля 2019

Вы не должны работать с IEnumerable, поскольку он загружен с отложенным доступом.Используйте ToArray ofIndItemsLocal и работайте с этой коллекцией, которая выделит коллекцию и тем самым повысит скорость.

...