title: JArray.Contains issue
body: <p>I have a JArray, read from a file :</p>
  
  <pre><code>private void RemoveCatalog(Catalog catalog) {
  
      System.IO.StreamReader filereader = new System.IO.StreamReader(@appDirectory + "\\list");
  
      JArray myjarray = JArray.Parse(filereader.ReadToEnd());
      filereader.Close(); 
  
      string json = " {\"token\":\"" + catalog.Token + "\",\"name\":\"" + catalog.Name +"\",\"logo\":\"" + catalog.Logo + "\",\"theme\":\"" + catalog.Theme + "\"}";
  
      JObject myCatalogAsJObject = JObject.Parse(json);
  
      myjarray.Remove(myCatalogAsJObject);
  
  }
  </code></pre>
  
  <p>I want to remove the JObject corresponding to <code>myCatalogAsJObject</code> variable, but it doesn't work, because the answer of <code>myjarray.Contains(myCatalogAsJObject)</code> is false.</p>
  
  <p>The problem is that <code>myjarray</code> actually contains it : it's the only JObject in my JArray.</p>
  
  <p>If I do <code>myCatalogAsJObject.ToString().Equals(myjarray.First.ToString())</code>, the answer is true however.</p>
  
  <p>I'm stuck.</p>