J'ai une méthode d'extension pour convertir une liste générique en chaîne. J'ai un objet qui est d'objet de type qui contient une liste; La liste pourrait être Y a-t-il un moyen de détecter que cet objet est une liste générique et de lancer ce type de liste générique spécifique pour appeler la méthode list
list
list
converttostring code>? P>
//ignore whats happening here
//just need to know its an object which is actually a list
object o = new List<int>() { 1, 2, 3, 4, 5 };
if (o is of type list)
{
string value = (cast o to generic type).ConvertToString();
}
3 Réponses :
vous peut EM> atteindre cela, avec beaucoup de réflexion (les deux pour trouver le bon et p> (vous pouvez également utiliser t code>, puis pour appeler via
makegenericmethod code> etc.); Cependant: vous n'êtes pas
ienumerable code > Dans l'étape ci-dessus, mais vous devez faire attention avec
string code> etc. si vous faites cela) p> p>
Au lieu de coder la méthode de l'extension contre ilist alors vous pouvez vérifier si o code> est un iEnumerable: p>
Utiliser System.Type Pour voir si votre type est un tableau (isarray) et s'il s'agit d'un type générique (isgénérictype) p>
Une liste n'est pas un tableau; qui n'aident pas non plus l'op trouver le t code> ou invoquer la méthode