How can I query a collection for a keyword like "John Doe" where the value of a property might be "John M Doe"? Doing a contains certainly will not work but below is an idea of what I'm after. people, for reference, is a List containing Person objects that have Name and Description properties.
string keyword = "John Doe";
var q = from person in people
where person.Name.ToLower().Contains(keyword.ToLower()) || person.Description.ToLower().Contains(keyword.ToLower())
select person;