Your right concurrent bag is probably more than it needs to be. But still it is correct. Is it significantly more inefficient? I doubt it in this case and I think it makes the code more robust to change.