Как решить ошибку Collection was modified; enumeration operation may not execute в таком коде?
Он получает ссылки по сущности. Потом, для этой сущности ссылки и идет повтор. Задача в том, чтобы не обрабатывать те сущности, что уже были опрошены. Для этого записываю в result все ид, и фильтрую по тем, что достал из ссылки. Чтобы в итоге по ссылке получить только уникальные ид.
protected List<int> GetEntitiesIdsFromLinksLoop(int entityId)
{
List<int> result = new List<int>() { entityId };
List<int> entitiesIds = new List<int>() { entityId };
while (entitiesIds.Any())
{
int entityIdFromList = ListUtils.Pop(entitiesIds);
List<Link> entityLinks = Context.ExtensionManager.DataService.GetOutboundLinksForEntity(entityIdFromList);
List<int> entitiesIdsFromLinks = GetEntitiesIdsFromLinks(entityLinks);
var notHandledEntities = result.Where(firstItem => !entitiesIdsFromLinks.Any(secondItem => firstItem == secondItem));
entitiesIds.AddRange(notHandledEntities);
result.AddRange(notHandledEntities); // Collection was modified; enumeration operation may not execute
}
}