Start here. This is the direct spoken answer to practice first.
Why this question matters
Complexity gives useful bounds, but good collection choices come from the complete workload and the sizes the application actually handles.
I start with the dominant operations and expected data size. A list scan is O(n), a dictionary lookup is O(1) on average, sorting is usually O(n log n), and inserting into the middle of a list is O(n). Those labels describe growth, not the complete runtime cost. For small collections, a simple contiguous scan can still be the clearest and fastest practical choice.