にプリミティブ型のリストをキャストするには、オブジェクトをIEnumerable<object>
にキャストする必要があります。私は、そのオブジェクトについて知っているすべては、それがリスト(Type.IsGenericType)であること、である:全てのクラスは、オブジェクトから継承するよう私のC#プログラムでIEnumerable <object>
IEnumerable<object> iEnu = myObject as IEnumerable<object>;
if (iEnu != null)
foreach (object o in iEnu)
// do stuff
限り、リストの種類がprimitivないとして、それは、正常に動作します。しかし、プリミティブはそうではありません。したがって、IEnumerable<object>
へのキャストはnullを返します。 IEnumerable<int>
にキャストする必要があります。整数リストの場合は、ブール値などのリストの場合はIEnumerable<bool>
にキャストする必要があります。当然のことながら、私はただ1つのジェネリックキャストを望む。
プリミティブリストを取得するにはどうすればよいですか?
なぜ、すべてのケースのために 'IEnumerable'を使用しない代わりに、オブジェクト – prizm1
のダイナミックな 'タイプ' を使用してみては? – Maarten
@Maarten:これが動作することを知らなかったため、P @ prizm1:ダイナミックでは機能しません 回答と解決策をありがとう。 – Aaginor