title: add an item to the queue only if it does not exist in queue
body: <p>I am processing zip files using queue. So whenever a new zip file arrives to the specified path, file_info will be added to queue using<br>
  <code>fileQueue.Enqueue(IFile);</code>
  Now I should add the File to queue only if it does not exist. I tried to implement <code>IEqualityComparer&lt;T&gt;</code> interface and the </p>
  
  <pre><code>public bool Equals(T x, T y)
  {
     object xValue = _propertyInfo.GetValue(x, null);
     object yValue = _propertyInfo.GetValue(y, null);
     return xValue.Equals(yValue);
  } 
  </code></pre>
  
  <p>and </p>
  
  <pre><code>public int GetHashCode(T obj)
  {
     object propertyValue = _propertyInfo.GetValue(obj, null);
     if (propertyValue == null)
        return 0;
     else
        return propertyValue.GetHashCode();
  } 
  </code></pre>
  
  <p>I have an interface to get the fileInfo </p>
  
  <pre><code>public interface IFile
  {        
     string FilePath { get; set; }
  }
  </code></pre>
  
  <p>Another queue object</p>
  
  <pre><code>public Queue&lt;IFile&gt; fileQueue = new Queue&lt;IFile&gt;();
  </code></pre>
  
  <p>Can anyone please suggest how to check if the file already exists in the queue before adding it to the queue again.
  Thanks you very much in advance.</p>