title: Cannot find how to do equality for the object I am dealing with POCS collection of POCS object
body: <p>Consider a simple POCS object FeeInfo (yes I know an object would normally be called simply Fee, but the usage of it makes the class name FeeInfo make more sense.)</p>
  <pre><code>        public FeeInfo()
      {
          Description = String.Empty;
          Status = String.Empty;
      }
  
      public string Description { get; set; }
      public string Status { get; set; }
      public decimal FeeAmount { get; set; }
      public decimal FeePaid { get; set; }
  
      public bool Equals(FeeInfo targetFee)
      {
          if (targetFee.Description == this.Description &amp;&amp; targetFee.Status == this.Status &amp;&amp;
              targetFee.FeeAmount == this.FeeAmount &amp;&amp; targetFee.FeePaid == this.FeePaid)
          {
              return true;
          }
  
          return false;
      }
  </code></pre>
  <p>I am clearly not using the interfaces for comparing / equality (largely because I don't yet understand them enough to understand if I need/want them. For this object, my equality method works to my needs.</p>
  <p>So imagine another object FeesInfo. Where FeesInfo wraps</p>
  <pre><code>private readonly List&lt;FeeInfo&gt; _fees = new List&lt;FeeInfo&gt;();
  </code></pre>
  <p>implements :IEnumerable and the like.</p>
  <p>I want to be able to compare two FeesInfo objects to ensure that the FeeInfo objects within it are the same. This would be two instances which contain the same number (Count) of elements which is easy. But I want an unordered comparison of the objects whose FeeInfo properties are the same.</p>
  <p>What is the best way to achieve this for this not super savy c# programmer? Thanks</p>