Как работает Distinct ()?

Допустим, у меня есть это:

class Foo
{
    public Guid id;
    public string description;
}

var list = new List();
list.Add(new Foo() { id = Guid.Empty, description = "empty" });
list.Add(new Foo() { id = Guid.Empty, description = "empty" });
list.Add(new Foo() { id = Guid.NewGuid(), description = "notempty" });
list.Add(new Foo() { id = Guid.NewGuid(), description = "notempty2" });

Теперь, когда я делаю это:

list = list.Distinct().Tolist();

Очевидно, он возвращает 4 элемента. Я хотел бы метод, который сравнивает все данные, которые у меня есть в классе, и возвращает уникальные элементы, что-то, что проверяет каждое свойство класса. Нужно ли мне писать свой собственный компаратор, или есть что-то встроенное, что работает таким образом?

Ответы на вопрос(2)

Ваш ответ на вопрос