86 votes

Comment vérifier si un objet est un tableau d'un certain type ?

Cela fonctionne bien :

var expectedType = typeof(string);
object value = "...";
if (value.GetType().IsAssignableFrom(expectedType))
{
     ...
}

Mais comment puis-je vérifier si la valeur est un tableau de chaînes de caractères sans paramétrer expectedType à typeof(string[]) ? Je veux faire quelque chose comme :

var expectedType = typeof(string);
object value = new[] {"...", "---"};
if (value.GetType().IsArrayOf(expectedType)) // <---
{
     ...
}

Est-ce possible ?

-3voto

jdmichal Points 6283

Avez-vous réellement besoin de connaître le type du tableau ? Ou faut-il seulement que les éléments soient d'un certain type ?

Dans ce dernier cas, vous pouvez simplement filtrer uniquement les éléments qui correspondent à ce que vous voulez :

string[] strings = array.OfType<string>();

-7voto

snb Points 240
if(objVal.GetType().Name == "Object[]")

vrai pour les tableaux

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X