ContainsメソッドやIndexOfメソッドではList内の要素を先頭から走査して一致する要素を検索します。 BinarySearchメソッドを使うと二分探索によって要素を検索することができます。
二分探索による検索では、あらかじめList内の要素がソートされていないと結果が不正となる一方、IndexOfメソッドよりも高速に検索を行うことができるという特徴があります(IndexOfやContainsはO(n)、BinarySearchはO(log n))。 格納されている要素が多数となる場合には二分探索による検索がより効果的です。
Listとソートについては§.ソート (Sort)で解説します。