title: CollectionAssert.AreEquivalent vs Assert.Equals()
body: <pre><code>public void NumericListCanBeSorted()
  {
    var sorted = sort.SortNumbers(nums);
    Assert.AreEqual(sorted, nums);
  }
  
  public List&lt;int&gt; SortNumbers(List&lt;int&gt; nums)
      {
          List&lt;int&gt; sortedList = new List&lt;int&gt;();
  
          for (int i = 0; i &lt; nums.Count(); i++)
          {
              for (int j = i + 1; j &lt; nums.Count; j++)
              {
                  if (nums[i] &gt; nums[j])
                  {
                      //Swapping values
                      nums[i] = nums[i] + nums[j];
                      nums[j] = nums[i] - nums[j];
                      nums[i] = nums[i] - nums[j];
                  }
              }
              sortedList.Add(nums[i]);
          }
          return sortedList;
      }
  
  Result Message: Assert.AreEqual failed. 
  Expected:     &lt;System.Collections.Generic.List`1[System.Int32]&gt;. 
        Actual :&lt;System.Collections.Generic.List`1[System.Int32]&gt;.
  </code></pre>
  
  <p>The datatypes of expected and actual are same. Still test failed. Cannot understand why? Can someone please help me know the reason.Moreover, it works for the following function. </p>
  
  <pre><code>  public List&lt;int&gt; SortNumbers(List&lt;int&gt; nums)
      {
          List&lt;int&gt; sortedList = new List&lt;int&gt;();
          for (int i = 0; i &lt; nums.Count(); i++)
          {
              for (int j = i + 1; j &lt; nums.Count; j++)
              {
                  if (nums[i] &gt; nums[j])
                  {
                      //Swapping values
                      nums[i] = nums[i] + nums[j];
                      nums[j] = nums[i] - nums[j];
                      nums[i] = nums[i] - nums[j];
                  }
              }
          }
          sortedList = nums;
          return sortedList;
      }
  </code></pre>