Convertir un Objet en Array

Résolu
darb66 Messages postés 36 Date d'inscription lundi 28 juillet 2003 Statut Membre Dernière intervention 23 juin 2008 - 26 juil. 2007 à 11:39
darb66 Messages postés 36 Date d'inscription lundi 28 juillet 2003 Statut Membre Dernière intervention 23 juin 2008 - 26 juil. 2007 à 12:11
Bonjour, J'utilise une référence COM pour pouvoir bénéficier de différentes fonctions... Je bloque sur une fonction dont voilà sa signature:
get_object_info(out Object monInfo)

Cette fonction retourne donc un objet - la fonction GetType retourne Object[,] - mais je sais que c'est en faite un tableau 2 Dim qui contient en principe des String (ou Int)... Malheureusement je ne trouve pas comment accéder au contenu de ce tableau... J'ai bien essayé de caster l'Objet en String[,] ou Array[,], mais j'obtiens l'erreur suivante: System.Object[,] ne peut pas être converti en Type System.Array[,].

Quelqu'un aurait une idée? Merci d'avance... Par ailleurs quelqu'un pourrait me dire la différence entre l'objet [][] et [,]?

2 réponses

SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
26 juil. 2007 à 12:03
Hello,

Je peux me tromper, mais je ne crois pas qu'on puisse caster un tableau d'objet.
Par contre, tu peux en créer un nouveau.

object[,]
objTab = (
object[,])
monInfo;

string[,]
strTab =
new
string[
objTab.
GetLength(0),
objTab.
GetLength(1)];

Array.
Copy(
objTab,
strTab,
objTab.
Length);
Pour ta deuxième question, la différence entre [][] et [,] :
[][] est un tableau de tableau , chacun des tableaux de la 2ème génération peut avoir une taille différente.
[,] est plutôt une matrice rectangulaire, chacun des tableaux de la 2ème génération a la même taille.

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
3
darb66 Messages postés 36 Date d'inscription lundi 28 juillet 2003 Statut Membre Dernière intervention 23 juin 2008
26 juil. 2007 à 12:11
Hello, merci pour ta réponse... j'ai posté un peu vite car après avoir fait quelques essais, j'ai trouver la même solution que celle que tu propose à savoir:
Object[,] Models = (Object[,]) oModels;
0
Rejoignez-nous