I have a HashSet that is a collection of client sockets. When a client connects, the socket is added to the HashSet. I then need to access that socket, but I don’t know how to access it in the HashSet.
...
clientSockets.Add(listenerSocket.EndAccept(async));
WaitForData(lastAddedSocket);
....
How could I determine what lastAddedSocket is?
There is no way to ask a HashSet “what was the last thing that was added to you?” The order is all jumbled up.
You should simply keep a separate variable called
lastAddedSocket. Every time you add a socket to the HashSet, also assign it tolastAddedSocket. Then you will be able to look it up easily and in constant time.