<p>Given the following simple example:</p>

<pre><code>    List&lt;string&gt; list = new List&lt;string&gt;() { "One", "Two", "Three", "three", "Four", "Five" };

    CaseInsensitiveComparer ignoreCaseComparer = new CaseInsensitiveComparer();

    var distinctList = list.Distinct(ignoreCaseComparer as IEqualityComparer&lt;string&gt;).ToList();
</code></pre>

<p>It appears the CaseInsensitiveComparer is not actually being used to do a case-insensitive comparison.  </p>

<p>In other words <strong>distinctList</strong>  contains the same number of items as <strong>list</strong>.   Instead I would expect, for example, "Three" and "three" be considered equal.</p>

<p>Am I missing something or is this an issue with the Distinct operator?</p>

```
StringComparer
```
does what you need:
```
```
List<string> list = new List<string>() {
    "One", "Two", "Three", "three", "Four", "Five" };

var distinctList = list.Distinct(
    StringComparer.CurrentCultureIgnoreCase).ToList();
```
```
(or invariant / ordinal / etc depending on the data you are comparing)