I have an instance of System.Type, for which "IsArray" returns true.
How can I determine the "nested type" of the array type?
i.e.
Type GetArrayType(Type t) { if(t.IsArray) { // What to put here? } throw new Exception("Type is not an array"); } Assert.That(GetArrayType(typeof(string[])), Iz.EqualTo(typeof(string)); Assert.That(GetArrayType(typeof(Foo[])), Iz.EqualTo(typeof(Foo));
Well, you can get the element type of the array: Type type = array. GetType(). GetElementType();
To get a TypeInfo object from a Type object, use the IntrospectionExtensions. GetTypeInfo(Type) extension method. A TypeInfo object represents the type definition itself, whereas a Type object represents a reference to the type definition. Getting a TypeInfo object forces the assembly that contains that type to load.
t.GetElementType()
Reference.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With