IList.Count

IList<Hoge> hoges = GetHoges();
Assert.That(hoges, Has.Count(5), "hoges の要素数が 5 であるか");

これ、GetHoges が List 等のコレクションではなく配列を返してくると、アサートをパスしない。
配列の場合は、要素数の取得に Count プロパティではなく Length プロパティを使うため。だから、Has.Count の代わりに Has.Length を使う必要がある。
配列に Has.Length を使うなんてことは前から知っていたけれど、GetHoges メソッドのように戻り値の型が IList 型として公開されていると、Has.Count を使いたくなる。むしろ、アサートをパスして欲しい。
当然、配列を IList にキャストしたところで、Has.Count メソッドがそれを知る術はないし、そういうことを言っているんじゃない。
Has.Count と Has.Length を使い分けるメリットがないような気がするから、Has.Length は廃止にすればいいと思う。