Example: revisiting users logged in to a service
Let's revisit the users logged into a service problem from Chapter 2, Arrays: Foundational Collection, one more time and examine how the code will be changed if we had chosen a set as the underlying data structure rather than an array or list.
C#
In this example, we have replaced the List<User>
object with a HashSet<User>
object. The majority of our code is unchanged, but you should note the exclusion of the CanAddUser(User)
method. Originally, this method validated the authenticated user action by ensuring that the collection had room for another object and then ensuring that the object to be added was not already included in the collection. A set data structure eliminates the need for the second step as it intrinsically prevents duplicate objects from being added. Since the only validation our class now requires is a capacity check, we can handle that inline with the UserAuthenticated(User)
functionality. As an added bonus, we...