>1) As far as I know, Collection is a VB specific class. Dictionary< TKey, TValue> would be more language agnostic, and likely have better support for LINQ. It should also give you O(1) access to the element you are looking for if you know the key.
>2) Your object should be a reference type and you should be able to update it directly without removing it from the collection. The example at
http://msdn.microsoft.com/en-us/library/vstudio/cy13e6ex%28v=vs.100%29.aspx under Accessing Elements confirms it.
>3) Lock the collection when you add and remove elements to prevent other threads from doing the same.
This sounds interesting. I will have to take a look at that.
Thanks