title: What is the correct .NET exception to throw when try to insert a duplicate object into a collection?
body: <p>I have an Asset object that has a property AssignedSoftware, which is a collection.  </p>
  
  <p>I want to make sure that the same piece of Software is not assigned to an Asset more than once.  In Add method I check to see if the Software already exist, and if it does, I want to throw an exception. </p>
  
  <p>Is there a standard .NET exception that I should be throwing?  Or does best practices dictate I create my own custom exception?</p>