次のように定義されているユーティリティメソッドがあります
public static Dictionary<T, int> CountOccurences<T>(IEnumerable<T> items) { ... }
残念ながらArrayList
の代わりに s を使用するレガシーコードがありList<T>
ます。ArrayList
ここで、上記のメソッドを使用するためにキャストする必要があり、次の両方が機能するはずです
var v = CountOccurences<String>(arrayList.Cast<String>().ToArray());
また
var v = CountOccurences<String>(arrayList.OfType<String>().ToArray());
VS2012 では、.NET 4.5 でこれらのいずれも機能しません。
'System.Collections.ArrayList' には 'OfType' の定義が含まれておらず、タイプ 'System.Collections.ArrayList' の最初の引数を受け入れる拡張メソッド 'OfType' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか? ?)
ただし、LINQpad でこれをテストしたところ、どちらも機能します。をキャストできないのはなぜArrayList
ですか?
御時間ありがとうございます。