public class MyType
{
    public int SomeProperty { get; set; }
}
public class CustomArray
{
    public MyType this[int index]
    {
        //some code
    }
}
var intList = new List<int>();
var arr = new CustomArray();
Array.ForEach(arr, x => intList.Add(x.MyProperty));
これは、次のようにコンパイルされません。
メソッド void System.Array.ForEach(T[], Action) の型引数は、使用法から推測できません。
それはどうしてですか?