public void it_should_return_all_values_from_the_original_collection_except_the_values_contained_in_the_second_collection()
        {
            var secretUsers = new[] { "Paul", "Jhon" };
            var allUsers = new DataRepositoryDummy().GetPeopleWithPets().ToList();

            allUsers.Add(new Person { Age = 12, LanguagesSpoken = Enumerable.Empty<Language>(), Name = "Jhon" });

            var q = allUsers.Select(x => x.Name).Distinct().Except(secretUsers);
            q.Should().HaveCount(3);
            q.Should().OnlyHaveUniqueItems();

            // alternate example 1
            var q1 = (from u in allUsers
                      from s in secretUsers
                      where u.Name == s
                      select u).Distinct();
            var q11 = allUsers.Except(q1);
            q11.Should().HaveCount(3);
            q11.Should().OnlyHaveUniqueItems();

            // alternate example 2 - does not work
            //var q2 = (from u in allUsers
            //          from s in secretUsers
            //          where u.Name != s
            //          select u).Distinct();
            //q2.Should().HaveCount(3);
            //q2.Should().OnlyHaveUniqueItems();
        }