Is there a reason to use .Contains on a string/list instead of .IndexOf? Most code that I would write using .Contains would shortly after need the index of the item and therefore would have to do both statements. But why not both in one?
if ((index = blah.IndexOf(something) >= 0)
// i know that Contains is true and i also have the index