Robot module/components IEnum->array #345
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Because every update loop updates every robot, which updates every module on every robotcomponent, the accessor the the underlying collection of modules and components is actually impactful.
Looping with IEnumerable is nice to defer the underlying query it may be built on. But if this is mostly static (for 99.999% of all update calls) then it would be wise to compute this and store it in an array.
The risk is that if the underlying collection (entity children) are manipulated not using the correct interface/public methods then the lazy-initializer (as the resetting mechanism to the collection) might become inconsistent. But this is why we have reviews and testing right? :)