How can I rewrite or is there a way to writing my own custom function that simulates the Custom System.Collections.Generic.Contains but only factors in certain Public Properties of a Custom Object?

For example if I have a custom Object with Properties Name and ID, I would like my Unique Value List to contain all the DISTINCT Names. The ID in this case is irrelevant.

```
List allvalues = new List ({0, "Burger"}, {1, "Pizza"}, {2, "burger"})

```

I would like it to return me a List which contains the first Object of 0, Burger and 1, Pizza... Irrespective of the ID and the Case of the Name.